-- Schema: C6MartPeriodico -- Stored Procedure: Popola_FD200DistribuzioneAssetClass_PTFRibilanciato --[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I' CREATE procedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato] -- Add the parameters for the stored procedure here -- @Rete char(1), -- @CodiceFiscale varchar(16) AS BEGIN truncate table c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato INSERT INTO c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato select rete, cod_fiscale, CASE rete WHEN 'S' THEN 'Sanpaolo Invest' WHEN 'F' THEN 'Fideuram' ELSE 'IW Private Investments' END AS Banca, a.ORDINAMENTO, AssetClassId, AssetClassName, a.chiaveptfmod, SUM(Controvalore) As Controvalore, --SUM(CONTROVALORE) / Totale As Percentuale, SUM(CONTROVALORE) / Totale * 100 As Percentuale, Totale, isnull(ptf.percentuale ,0.00) as Percentuale_Modello, VAR_PROG FROM ( SELECT rete, cod_fiscale, ASSETCLASS.ORDINAMENTO, VALORIASSET.ID_ASSETCLASS AS AssetClassId, ASSETCLASS.DESCRIZIONE AS AssetClassName, CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore, --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale, cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2) as decimal(19,5)) AS Totale , chiaveptfmod, VAR_PROG FROM ( SELECT VAL.RETE, VAL.COD_FISCALE, SUM(CONTROVALORE) AS CONTROVALORE, ID_ASSETCLASS , chiaveptfmod, VAR_PROG FROM (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare SELECT PATR_BF.RETE, PATR_BF.COD_FISCALE, (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE, ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS , chiaveptfmod, RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|' + cast (Patr_BF.ordinamento_progetto as varchar) -- inner join --C6StagingPeriodico.RP_Progetto_Robo robo --on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO WHERE --inizio interventi OMNIA -- PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre') PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre') --fine interventi OMNIA AND ASSETPERC.LIVELLO = 2 --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC') AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2') and PATR_BF.NOME_PROGETTO like '%Direct Evo%' --AND PATR_BF.COD_FISCALE= @CodiceFiscale -- AND PATR_BF.RETE= @Rete -- UNION ALL ---DETTAGLIO ASUL SENZA GLI SKANDIA SELECT PATR_BF.RETE, PATR_BF.COD_FISCALE, ASUL.CTV*ASSETPERC.PERC as Controvalore, ASSETPERC.ID_ASSETCLASS , patr_bf.chiaveptfmod, RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO) AND ASUL.COD_ISIN_SOTT = '' AND ASSETPERC.LIVELLO = 2 INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE AND ASUL.RETE=PATR_BF.RETE AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO LEFT J