--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I' CREATE procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass] -- Add the parameters for the stored procedure here -- @Rete char(1), -- @CodiceFiscale varchar(16) AS BEGIN truncate table c6martperiodico.TB_S148DistribuzioneAssetClass INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass --SELECT @Rete as Rete, @CodiceFiscale as CodiceFiscale, -- CASE @Rete -- WHEN 'S' THEN 'Sanpaolo Invest' -- ELSE 'Banca Fideuram' -- END AS Banca, select rete, cod_fiscale, CASE rete WHEN 'S' THEN 'Sanpaolo Invest' WHEN 'F' THEN 'Fideuram' ELSE 'IW Private Investments' END AS Banca, ORDINAMENTO, AssetClassId, AssetClassName, SUM(Controvalore) As Controvalore, --SUM(CONTROVALORE) / Totale As Percentuale, SUM(CONTROVALORE) / Totale * 100 As Percentuale, Totale 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 FROM ( SELECT VAL.RETE, VAL.COD_FISCALE, SUM(CONTROVALORE) AS CONTROVALORE, ID_ASSETCLASS 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 FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO 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.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 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 WHERE --ASUL.RETE = @Rete --AND ASUL.COD_FISCALE = @CodiceFiscale PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre') UNION ALL --DETTAGLIO ASUL SKANDIA SELECT ASUL.RETE, ASUL.COD_FISCALE, ASUL.CTV*ASSETPERC.PERC as Controvalore, ASSETPERC.ID_ASSETCLASS FROM C6MartPeriodico.PATRIMONIO_BF ASUL INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN) AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF) AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO) AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO AND ASSETPERC.LIVELLO = 2 WHERE --ASUL.RETE =@Rete --AND ASUL.COD_FISCALE = @CodiceFiscale --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2 ASUL.tipo_Prodotto = 'ASU2' AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre') ) val where Controvalore >0 GROUP BY VAL.RETE, val.COD_FISCALE, VAL.ID_ASSETCLASS UNION ALL /* nuovo */ SELECT VAL.RETE, VAL.COD_FISCALE, SUM(CONTROVALORE) AS CONTROVALORE, ID_ASSETCLASS 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 FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO WHERE PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre') 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.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 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 WHERE --ASUL.RETE = @Rete --AND ASUL.COD_FISCALE = @CodiceFiscale PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre') UNION ALL --DETTAGLIO ASUL SKANDIA SELECT ASUL.RETE, ASUL.COD_FISCALE, ASUL.CTV*ASSETPERC.PERC as Controvalore, ASSETPERC.ID_ASSETCLASS FROM C6MartPeriodico.PATRIMONIO_BF ASUL INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN) AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF) AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO) AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO AND ASSETPERC.LIVELLO = 2 WHERE -- ASUL.RETE =@Rete -- AND ASUL.COD_FISCALE = @CodiceFiscale --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2 ASUL.tipo_Prodotto = 'ASU2' AND ASUL.ID_AREA IN ('Pre1','Pre2','Pre') ) val where Controvalore >0 GROUP BY VAL.RETE, val.COD_FISCALE, VAL.ID_ASSETCLASS ) VALORIASSET INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS -- WHERE -- VALORIASSET.RETE =@Rete -- AND VALORIASSET.COD_FISCALE = @CodiceFiscale ) a Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale ORDER BY ORDINAMENTO END --USE [C6StampeCentralizzate] --GO --/****** Object: StoredProcedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass] Script Date: 10/02/2022 16:42:22 ******/ --SET ANSI_NULLS ON --GO --SET QUOTED_IDENTIFIER ON --GO ----[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I' --ALTER procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass] -- -- Add the parameters for the stored procedure here ---- @Rete char(1), ---- @CodiceFiscale varchar(16) --AS --BEGIN --truncate table c6martperiodico.TB_S148DistribuzioneAssetClass --INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass ----SELECT @Rete as Rete, @CodiceFiscale as CodiceFiscale, ---- CASE @Rete ---- WHEN 'S' THEN 'Sanpaolo Invest' ---- ELSE 'Banca Fideuram' ---- END AS Banca, -- select rete, -- cod_fiscale, -- CASE rete -- WHEN 'S' THEN 'Sanpaolo Invest' -- ELSE 'Fideuram' -- END AS Banca, -- ORDINAMENTO, -- AssetClassId, -- AssetClassName, -- SUM(Controvalore) As Controvalore, -- --SUM(CONTROVALORE) / Totale As Percentuale, -- SUM(CONTROVALORE) / Totale * 100 As Percentuale, -- Totale --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 -- FROM ( -- SELECT -- VAL.RETE, -- VAL.COD_FISCALE, -- SUM(CONTROVALORE) AS CONTROVALORE, -- ID_ASSETCLASS -- 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 -- FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF -- INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC -- ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO -- 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.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 -- 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 -- WHERE -- --ASUL.RETE = @Rete -- --AND ASUL.COD_FISCALE = @CodiceFiscale -- PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre') -- UNION ALL -- --DETTAGLIO ASUL SKANDIA -- SELECT ASUL.RETE, -- ASUL.COD_FISCALE, -- ASUL.CTV*ASSETPERC.PERC as Controvalore, -- ASSETPERC.ID_ASSETCLASS -- FROM C6MartPeriodico.PATRIMONIO_BF ASUL -- INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC -- ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN) -- AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF) -- AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO) -- AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO -- AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO -- AND ASSETPERC.LIVELLO = 2 -- WHERE -- --ASUL.RETE =@Rete -- --AND ASUL.COD_FISCALE = @CodiceFiscale -- --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2 -- ASUL.tipo_Prodotto = 'ASU2' -- AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre') -- ) val -- where Controvalore >0 -- GROUP BY -- VAL.RETE, -- val.COD_FISCALE, -- VAL.ID_ASSETCLASS -- UNION ALL -- /* nuovo */ -- SELECT -- VAL.RETE, -- VAL.COD_FISCALE, -- SUM(CONTROVALORE) AS CONTROVALORE, -- ID_ASSETCLASS -- 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 -- FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF -- INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC -- ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO -- WHERE -- PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre') -- 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.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 -- 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 -- WHERE -- --ASUL.RETE = @Rete -- --AND ASUL.COD_FISCALE = @CodiceFiscale -- PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre') -- UNION ALL -- --DETTAGLIO ASUL SKANDIA -- SELECT ASUL.RETE, -- ASUL.COD_FISCALE, -- ASUL.CTV*ASSETPERC.PERC as Controvalore, -- ASSETPERC.ID_ASSETCLASS -- FROM C6MartPeriodico.PATRIMONIO_BF ASUL -- INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC -- ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN) -- AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF) -- AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO) -- AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO -- AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO -- AND ASSETPERC.LIVELLO = 2 -- WHERE -- -- ASUL.RETE =@Rete -- -- AND ASUL.COD_FISCALE = @CodiceFiscale -- --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2 -- ASUL.tipo_Prodotto = 'ASU2' -- AND ASUL.ID_AREA IN ('Pre1','Pre2','Pre') -- ) val -- where Controvalore >0 -- GROUP BY -- VAL.RETE, -- val.COD_FISCALE, -- VAL.ID_ASSETCLASS -- ) -- VALORIASSET -- INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS -- ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS ---- WHERE ---- VALORIASSET.RETE =@Rete ---- AND VALORIASSET.COD_FISCALE = @CodiceFiscale --) a --Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale -- ORDER BY ORDINAMENTO --END