PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6Mart_PL_S10PatrimonioFinanziario.sql
2025-06-06 19:02:52 +02:00

135 lines
4.0 KiB
SQL

-- Schema: C6Mart
-- Stored Procedure: PL_S10PatrimonioFinanziario
-- =============================================
-- Author: <Luca De Lisio,,PL_S10PatrimonioFinanziario>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--[C6Mart].[PL_S10PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
--[C6Mart].[PL_S10PatrimonioFinanziario] 'F','CTTCRL43E45H720U'
CREATE procedure [C6Mart].[PL_S10PatrimonioFinanziario]
-- Add the parameters for the stored procedure here
@Rete char(1),
@CodiceFiscale varchar(16)
AS
BEGIN
SELECT
A.BANCA,
A.ORDINAMENTO,
A.AssetClassId,
A.AssetClassName,
cast(A.Controvalore as decimal(19,5)) Controvalore,
cast(A.Percentuale as decimal(19,5)) 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 'Banca Fideuram'
ELSE 'IW Private Investments'
END AS Banca,
ASSETCLASS.ORDINAMENTO,
VALORIASSET.ID_ASSETCLASS AS AssetClassId,
ASSETCLASS.DESCRIZIONE AS AssetClassName,
ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
(
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
) * 100 AS Percentuale
FROM (
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
---- LEFT OUTER 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
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
---ELIMINO GLI SKANDIA
AND ASUL.COD_ISIN_SOTT = ''
AND ASSETPERC.LIVELLO = 1
WHERE
ASUL.RETE = @Rete
AND ASUL.COD_FISCALE = @CodiceFiscale
UNION ALL
SELECT ASSETPERC.ID_ASSETCLASS,
ASUL.CTV*ASSETPERC.PERC as Controvalore
FROM C6MART.DETTAGLIO_ASUL ASUL
INNER JOIN C6MART.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 ASSETPERC.LIVELLO = 1
WHERE
ASUL.RETE = @Rete
AND ASUL.COD_FISCALE = @CodiceFiscale
) VALORIASSET
INNER JOIN C6Mart.ASSETCLASS ASSETCLASS
ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--V Aggiunto controllo che il cvt sia maggiore di zero, altrimenti
-- viene visualizzato sul report una riga con 0
WHERE A.CONTROVALORE > 0
ORDER BY A.ORDINAMENTO
END
--USE [C6StampeCentralizzate]
--GO
--/****** Object: StoredProcedure [C6Mart].[PL_S10PatrimonioFinanziario] Script Date: 08/02/2022 16:50:06 ******/