PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodicoImmobiliare_PL_D_S154PatrimonioFinanziario.sql
2025-06-09 17:09:11 +02:00

152 lines
4.9 KiB
SQL

-- 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