268 lines
11 KiB
SQL
268 lines
11 KiB
SQL
--[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 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
|
|
--ASUL.RETE = @Rete
|
|
--AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')
|
|
and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
|
|
UNION ALL
|
|
--DETTAGLIO ASUL SKANDIA
|
|
SELECT ASUL.RETE,
|
|
ASUL.COD_FISCALE,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore,
|
|
ASSETPERC.ID_ASSETCLASS ,
|
|
asul.chiaveptfmod,
|
|
RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
|
|
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
|
|
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
|
|
ON ASUL.RETE= RISCHIO_AGGR_PROG.RETE
|
|
AND ASUL.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
|
|
AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(ASUL.ID_AREA,3) + '|' + ASUL.NOME_PROGETTO + '|'
|
|
+ cast (ASUL.ordinamento_progetto as varchar)
|
|
-- inner join
|
|
--C6StagingPeriodico.RP_Progetto_Robo robo
|
|
--on robo.chiaveProgetto=ASUL.CHIAVE_PROGETTO
|
|
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')
|
|
and asul.NOME_PROGETTO like '%Direct Evo%'
|
|
) val
|
|
-- where Controvalore >0
|
|
GROUP BY
|
|
VAL.RETE,
|
|
val.COD_FISCALE,
|
|
VAL.ID_ASSETCLASS ,
|
|
val.chiaveptfmod,
|
|
val.var_prog
|
|
UNION ALL
|
|
/* nuovo */
|
|
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 ,
|
|
patr_bf.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
|
|
-- inner join
|
|
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)
|
|
--C6StagingPeriodico.RP_Progetto_Robo robo
|
|
--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
|
|
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.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
|
|
,
|
|
chiaveptfmod
|
|
,RISCHIO_AGGR_PROG.VAR_PERC_PTF
|
|
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 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
|
|
--ASUL.RETE = @Rete
|
|
--AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')
|
|
and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
|
|
UNION ALL
|
|
--DETTAGLIO ASUL SKANDIA
|
|
SELECT ASUL.RETE,
|
|
ASUL.COD_FISCALE,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore,
|
|
ASSETPERC.ID_ASSETCLASS,
|
|
chiaveptfmod
|
|
,RISCHIO_AGGR_PROG.VAR_PERC_PTF
|
|
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
|
|
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
|
|
ON ASUL.RETE= RISCHIO_AGGR_PROG.RETE
|
|
AND ASUL.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
|
|
AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(ASUL.ID_AREA,3) + '|' + ASUL.NOME_PROGETTO + '|'
|
|
+ cast (ASUL.ordinamento_progetto as varchar)
|
|
-- inner join
|
|
--C6StagingPeriodico.RP_Progetto_Robo robo
|
|
--on robo.chiaveProgetto=ASUL.CHIAVE_PROGETTO
|
|
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')
|
|
and asul.NOME_PROGETTO like '%Direct Evo%'
|
|
) val
|
|
-- where Controvalore >0
|
|
GROUP BY
|
|
VAL.RETE,
|
|
val.COD_FISCALE,
|
|
VAL.ID_ASSETCLASS,
|
|
val.chiaveptfmod,
|
|
val.var_prog
|
|
)
|
|
VALORIASSET
|
|
INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
|
|
ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
|
|
-- WHERE
|
|
-- VALORIASSET.RETE =@Rete
|
|
-- AND VALORIASSET.COD_FISCALE = @CodiceFiscale
|
|
) a
|
|
left join [c6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass] ptf
|
|
on ptf.chiavePtfMod=a.chiaveptfmod and ptf.asset=a.AssetClassID
|
|
Group By rete,cod_fiscale,a.ORDINAMENTO, AssetClassId, AssetClassName, Totale ,a.chiaveptfmod,ptf.percentuale,var_prog
|
|
ORDER BY a.ORDINAMENTO
|
|
end |