-- ============================================= -- Author: Luca De Lisio -- Create date: -- Description: -- ============================================= --[C6Mart].[PL_S2PatrimonioFinanziario] 'S','LCRGPR67H19Z326U' CREATE procedure [C6Mart].[PL_S2PatrimonioFinanziario] -- Add the parameters for the stored procedure here @Rete char(1), @CodiceFiscale varchar(16) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SELECT A.BANCA, A.ORDINAMENTO, A.AssetClassId, A.AssetClassName, cast(A.Controvalore as decimal(19,6)) Controvalore, A.Percentuale, cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV FROM ( SELECT DISTINCT CASE @Rete WHEN 'S' THEN 'Sanpaolo Invest' WHEN 'F' THEN 'Banca Fideuram' ELSE 'IW Private Investments' END AS Banca, ASSETCLASS.ORDINAMENTO AS Ordinamento, VALORIASSET.ID_ASSETCLASS AS AssetClassId, ASSETCLASS.DESCRIZIONE AS AssetClassName, SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore, ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) * 100 AS Percentuale FROM ( --PRODOTTI BF ESCLUSI GLI ASUL SELECT ASSETPERC.ID_ASSETCLASS, PATRBF.CTV*ASSETPERC.PERC as Controvalore FROM C6MART.PATRIMONIO_BF PATRBF INNER JOIN C6MART.ASSET_PERC ASSETPERC ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO AND ASSETPERC.LIVELLO = 1 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 <> 'CC' AND PATRBF.RETE = @Rete AND PATRBF.COD_FISCALE = @CodiceFiscale UNION ALL -- -- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC -- SELECT -- ASSETPERC.ID_ASSETCLASS, -- PATRBF.CTV*ASSETPERC.PERC as Controvalore -- FROM -- C6MART.PATRIMONIO_BF PATRBF -- INNER JOIN -- C6MART.ASSET_PERC ASSETPERC -- ON -- PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO -- AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO -- AND ASSETPERC.LIVELLO = 1 -- -- --V per i cc negativi vado sull'area della patrimonio bf essendo i pos in liq -- --LEFT JOIN -- -- C6Mart.ClientiConCCNegativo CCNegativo -- -- ON -- -- PATRBF.RETE = CCNegativo.Rete -- -- AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale -- WHERE -- --ELIMINO I CC CON SALDO NEGATIVO -- --PATRBF.TIPO_PRODOTTO = 'CC' -- PATRBF.ID_AREA <> 'CC' -- AND PATRBF.RETE = @Rete -- AND PATRBF.COD_FISCALE = @CodiceFiscale -- --AND CCNegativo.Cod_Fiscale IS NULL -- UNION ALL --DETTAGLIO ASUL SELECT ASSETPERC.ID_ASSETCLASS, ASUL.CTV*ASSETPERC.PERC as Controvalore FROM C6MART.DETTAGLIO_ASUL ASUL INNER JOIN C6MART.ASSET_PERC ASSETPERC ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO AND ASSETPERC.LIVELLO = 1 WHERE ASUL.RETE = @Rete AND ASUL.COD_FISCALE = @CodiceFiscale UNION ALL --PRODOTTI TERZI A CATALOGO SELECT ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS, PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore FROM C6MART.PATRIMONIO_TERZI PATRTERZI LEFT JOIN C6MART.ASSET_PERC ASSETPERC ON PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO AND ASSETPERC.LIVELLO = 1 WHERE 1 = 1 AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO' AND PATRTERZI.RETE = @Rete AND PATRTERZI.COD_FISCALE = @CodiceFiscale UNION ALL --PRODOTTI TERZI NON A CATALOGO SELECT ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS, PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore FROM C6MART.PATRIMONIO_TERZI PATRTERZI LEFT JOIN C6MART.ASSET_PERC_TERZI ASSETPERC ON PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI AND ASSETPERC.LIVELLO = 1 WHERE 1 = 1 AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND PATRTERZI.RETE = @Rete AND PATRTERZI.COD_FISCALE = @CodiceFiscale ) VALORIASSET INNER JOIN C6Mart.ASSETCLASS ASSETCLASS ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS ) A ORDER BY A.ORDINAMENTO END --USE [C6StampeCentralizzate] --GO --/****** Object: StoredProcedure [C6Mart].[PL_S2PatrimonioFinanziario] Script Date: 08/02/2022 16:53:30 ******/ --SET ANSI_NULLS ON --GO --SET QUOTED_IDENTIFIER ON --GO ---- ============================================= ---- Author: Luca De Lisio ---- Create date: ---- Description: ---- ============================================= ----[C6Mart].[PL_S2PatrimonioFinanziario] 'S','LCRGPR67H19Z326U' --ALTER procedure [C6Mart].[PL_S2PatrimonioFinanziario] -- -- Add the parameters for the stored procedure here -- @Rete char(1), -- @CodiceFiscale varchar(16) --AS --BEGIN -- -- SET NOCOUNT ON added to prevent extra result sets from -- -- interfering with SELECT statements. --SELECT -- A.BANCA, -- A.ORDINAMENTO, -- A.AssetClassId, -- A.AssetClassName, -- cast(A.Controvalore as decimal(19,6)) Controvalore, -- A.Percentuale, -- cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV --FROM --( -- SELECT DISTINCT -- CASE @Rete -- WHEN 'S' THEN 'Sanpaolo Invest' -- ELSE 'Banca Fideuram' -- END AS Banca, -- ASSETCLASS.ORDINAMENTO AS Ordinamento, -- VALORIASSET.ID_ASSETCLASS AS AssetClassId, -- ASSETCLASS.DESCRIZIONE AS AssetClassName, -- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore, -- ( -- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) / -- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') -- ) * 100 AS Percentuale -- FROM ( -- --PRODOTTI BF ESCLUSI GLI ASUL -- SELECT -- ASSETPERC.ID_ASSETCLASS, -- PATRBF.CTV*ASSETPERC.PERC as Controvalore -- FROM C6MART.PATRIMONIO_BF PATRBF -- INNER JOIN C6MART.ASSET_PERC ASSETPERC -- ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO -- AND ASSETPERC.LIVELLO = 1 -- 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 <> 'CC' -- AND PATRBF.RETE = @Rete -- AND PATRBF.COD_FISCALE = @CodiceFiscale -- UNION ALL ---- -- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC ---- SELECT ---- ASSETPERC.ID_ASSETCLASS, ---- PATRBF.CTV*ASSETPERC.PERC as Controvalore ---- FROM ---- C6MART.PATRIMONIO_BF PATRBF ---- INNER JOIN ---- C6MART.ASSET_PERC ASSETPERC ---- ON ---- PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO ---- AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO ---- AND ASSETPERC.LIVELLO = 1 ---- ---- --V per i cc negativi vado sull'area della patrimonio bf essendo i pos in liq ---- --LEFT JOIN ---- -- C6Mart.ClientiConCCNegativo CCNegativo ---- -- ON ---- -- PATRBF.RETE = CCNegativo.Rete ---- -- AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale ---- WHERE ---- --ELIMINO I CC CON SALDO NEGATIVO ---- --PATRBF.TIPO_PRODOTTO = 'CC' ---- PATRBF.ID_AREA <> 'CC' ---- AND PATRBF.RETE = @Rete ---- AND PATRBF.COD_FISCALE = @CodiceFiscale ---- --AND CCNegativo.Cod_Fiscale IS NULL ---- UNION ALL -- --DETTAGLIO ASUL -- SELECT -- ASSETPERC.ID_ASSETCLASS, -- ASUL.CTV*ASSETPERC.PERC as Controvalore -- FROM -- C6MART.DETTAGLIO_ASUL ASUL -- INNER JOIN -- C6MART.ASSET_PERC ASSETPERC -- ON -- ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO -- AND ASSETPERC.LIVELLO = 1 -- WHERE ASUL.RETE = @Rete -- AND ASUL.COD_FISCALE = @CodiceFiscale -- UNION ALL -- --PRODOTTI TERZI A CATALOGO -- SELECT -- ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS, -- PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore -- FROM -- C6MART.PATRIMONIO_TERZI PATRTERZI -- LEFT JOIN -- C6MART.ASSET_PERC ASSETPERC -- ON -- PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO -- AND ASSETPERC.LIVELLO = 1 -- WHERE 1 = 1 -- AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO' -- AND PATRTERZI.RETE = @Rete -- AND PATRTERZI.COD_FISCALE = @CodiceFiscale -- UNION ALL -- --PRODOTTI TERZI NON A CATALOGO -- SELECT -- ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS, -- PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore -- FROM -- C6MART.PATRIMONIO_TERZI PATRTERZI -- LEFT JOIN -- C6MART.ASSET_PERC_TERZI ASSETPERC -- ON -- PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI -- AND ASSETPERC.LIVELLO = 1 -- WHERE 1 = 1 -- AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' -- AND PATRTERZI.RETE = @Rete -- AND PATRTERZI.COD_FISCALE = @CodiceFiscale -- ) VALORIASSET -- INNER JOIN -- C6Mart.ASSETCLASS ASSETCLASS -- ON -- ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS --) A --ORDER BY A.ORDINAMENTO --END