-- Schema: C6MartPeriodico -- Stored Procedure: Popola_FD190PatrimonioFinanziario_PTFRibilanciato -- ============================================= -- Author: <> -- Create date: <> -- Description: -- ============================================= -- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I' CREATE procedure [C6MartPeriodico].[Popola_FD190PatrimonioFinanziario_PTFRibilanciato] -- Add the parameters for the stored procedure here --@Rete char(1), --@CodiceFiscale varchar(16) AS BEGIN truncate table C6MartPeriodico.TB_FD190PatrimonioFinanziario_PTFRibilanciato INSERT INTO C6MartPeriodico.TB_FD190PatrimonioFinanziario_PTFRibilanciato SELECT --top 1 Rete, cod_fiscale as CodiceFiscale, A.BANCA AS Banca, A.ORDINAMENTO AS Ordinamento, A.AssetClassId AS AssetClassId, A.AssetClassName AS AssetClassName, a.ChiavePtfMod, A.Controvalore, A.percentuale, ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2) as Totale, isnull(ptf.percentuale,0.00) as Percentuale_Modello, A.VAR_PROG --cast(A.Controvalore as decimal(19,5)) AS Controvalore, --cast(A.Percentuale as decimal(19,5)) AS Percentuale, --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,5)) AS Totale FROM ( SELECT DISTINCT CASE Rete WHEN 'S' THEN 'Sanpaolo Invest' WHEN 'F' THEN 'Fideuram' ELSE 'IW Private Investments' END AS Banca, rete, cod_fiscale, ASSETCLASS.ORDINAMENTO, VALORIASSET.ID_ASSETCLASS AS AssetClassId, ASSETCLASS.DESCRIZIONE AS AssetClassName, ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore, ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) / --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0 THEN 1 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) END ) * 100 AS Percentuale , ChiavePtfMod, VAR_PERC_PTF as VAR_PROG FROM ( SELECT PATRBF.rete, PATRBF.COD_FISCALE, ASSETPERC.ID_ASSETCLASS, PATRBF.CTV*ASSETPERC.PERC as Controvalore , PATRBF.ChiavePtfMod, RISCHIO_AGGR_PROG.VAR_PERC_PTF FROM C6MartPeriodico.PATRIMONIO_BF PATRBF INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO AND ASSETPERC.LIVELLO = 1 -- inner join -- C6StagingPeriodico.RP_Progetto_Robo robo -- on robo.chiaveProgetto=patrbf.CHIAVE_PROGETTO LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + cast (PatrBF.ordinamento_progetto as varchar) WHERE --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC')) and patrbf.id_area not in ('CC', 'SELF') and patrbf.NOME_PROGETTO like '%Direct Evo%' -- AND PATRBF.RETE = @Rete -- AND PATRBF.COD_FISCALE = @CodiceFiscale UNION ALL SELECT Asul.rete, asul.cod_fiscale, ASSETPERC.ID_ASSETCLASS, ASUL.CTV*ASSETPERC.PERC as Controvalore , patrbf.chiaveptfmod, RISCHIO_AGGR_PROG.VAR_PERC_PTF FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO ---ELIMINO GLI SKANDIA AND ASUL.COD_ISIN_SOTT = '' AND ASSETPERC.LIVELLO = 1