PDC_REPORT_CreazioneDB/sql/Collaudo/procedure/C6MartPeriodico_Popola_S148DistribuzioneAssetClass.sql
2025-06-10 15:29:00 +02:00

388 lines
15 KiB
SQL

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