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

113 lines
3.9 KiB
SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: Popola_FD200DistribuzioneAssetClass_PTFRibilanciato
--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'
CREATE procedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato]
-- Add the parameters for the stored procedure here
-- @Rete char(1),
-- @CodiceFiscale varchar(16)
AS
BEGIN
truncate table c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato
INSERT INTO c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato
select rete,
cod_fiscale,
CASE rete
WHEN 'S' THEN 'Sanpaolo Invest'
WHEN 'F' THEN 'Fideuram'
ELSE 'IW Private Investments'
END AS Banca,
a.ORDINAMENTO,
AssetClassId,
AssetClassName,
a.chiaveptfmod,
SUM(Controvalore) As Controvalore,
--SUM(CONTROVALORE) / Totale As Percentuale,
SUM(CONTROVALORE) / Totale * 100 As Percentuale,
Totale,
isnull(ptf.percentuale ,0.00) as Percentuale_Modello,
VAR_PROG
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 ,
chiaveptfmod,
VAR_PROG
FROM (
SELECT
VAL.RETE,
VAL.COD_FISCALE,
SUM(CONTROVALORE) AS CONTROVALORE,
ID_ASSETCLASS ,
chiaveptfmod,
VAR_PROG
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 ,
chiaveptfmod,
RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE
AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|'
+ cast (Patr_BF.ordinamento_progetto as varchar)
-- inner join
--C6StagingPeriodico.RP_Progetto_Robo robo
--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
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.NOME_PROGETTO like '%Direct Evo%'
--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 ,
patr_bf.chiaveptfmod,
RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
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
LEFT J