-- Stored procedure -- ============================================= -- Author: Luca De Lisio -- Create date: -- Description: -- ============================================= --[C6MartPeriodicoImmobiliare].[PL_D_S154PatrimonioFinanziario] 'F','BCHRRT54L12G999R' CREATE procedure [C6MartPeriodicoImmobiliare].[PL_D_S154PatrimonioFinanziario] -- 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 '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, ( ISNULL(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) / NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'), 0),0.00) ) * 100 AS Percentuale FROM ( --PRODOTTI BF ESCLUSI GLI ASUL SELECT ASSETPERC.ID_ASSETCLASS, PATRBF.CTV*ASSETPERC.PERC as Controvalore FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF PATRBF INNER JOIN C6MartPeriodicoImmobiliare.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 -- C6MartPeriodicoImmobiliare.PATRIMONIO_BF PATRBF -- INNER JOIN -- C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC -- ON -- PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO -- AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO -- AND ASSETPERC.LIVELLO = 1 -- LEFT OUTER JOIN -- C6MartPeriodicoImmobiliare.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' -- AND PATRBF.RETE = @Rete -- AND PATRBF.COD_FISCALE = @CodiceFiscale -- AND CCNegativo.Cod_Fiscale IS NULL -- UNION ALL --DETTAGLIO ASUL SENZA SKANDIA SELECT ASSETPERC.ID_ASSETCLASS, ASUL.CTV*ASSETPERC.PERC as Controvalore FROM C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL ASUL INNER JOIN C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO ---ELIMINO GLI SKANDIA AND ASUL.COD_ISIN_SOTT = '' AND ASSETPERC.LIVELLO = 1 WHERE ASUL.RETE = @Rete AND ASUL.COD_FISCALE = @CodiceFiscale UNION ALL --CON SKANDIA SELECT ASSETPERC.ID_ASSETCLASS, ASUL.CTV*ASSETPERC.PERC as Controvalore FROM C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL ASUL INNER JOIN C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC --PRENDO SOLO GLI SKANDIA ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO 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 C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI PATRTERZI LEFT OUTER JOIN C6MartPeriodicoImmobiliare.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 C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI PATRTERZI LEFT OUTER JOIN C6MartPeriodicoImmobiliare.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 C6MartPeriodicoImmobiliare.ASSETCLASS ASSETCLASS ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS ) A ORDER BY A.ORDINAMENTO END