PDC_REPORT_CreazioneDB/sql/Collaudo/viste/C6MartPeriodico_vTuttiIPortafogli_ccLiq.sql
2025-06-10 15:29:00 +02:00

136 lines
5.5 KiB
SQL

-- View
-- View
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[vTuttiIPortafogli_ccLiq]
AS
SELECT
PATRIMONIO_BF.RETE AS Rete,
PATRIMONIO_BF.COD_FISCALE AS CodiceFiscale,
CASE
WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN
'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID
ELSE
'RISFIN|PIRAMIDE|' +
LEFT(PATRIMONIO_BF.ID_AREA,3) +
CASE
WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
ELSE ''
END + '|' + PATRIMONIO_BF.POSITION_ID
END AS Portafoglio,
CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
END AS CodiceProdotto,
'' AS Piazza,
'' AS CodiceValuta,
'' AS Classe,
PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
PATRIMONIO_BF.CTV AS CtvReale
FROM c6martperiodico.PATRIMONIO_BF
INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
INNER JOIN c6martperiodico.ANAG_PRODOTTI
ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
UNION ALL
---V Modifica per calcolo VaR prodotti ASU2
SELECT
PATRIMONIO_BF.RETE AS Rete,
PATRIMONIO_BF.COD_FISCALE AS CodiceFiscale,
CASE
WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN
'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID
ELSE
'RISFIN|PIRAMIDE|' +
LEFT(PATRIMONIO_BF.ID_AREA,3) +
CASE
WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
ELSE ''
END + '|' + PATRIMONIO_BF.POSITION_ID
END AS Portafoglio,
PATRIMONIO_BF.ISIN AS CodiceProdotto,
'' AS Piazza,
'' AS CodiceValuta,
'' AS Classe,
PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
PATRIMONIO_BF.CTV AS CtvReale
FROM C6Martperiodico.PATRIMONIO_BF
INNER JOIN C6Martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
INNER JOIN C6Martperiodico.ANAG_PRODOTTI
ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')
UNION ALL
-- PATRIMONIO ASUL
SELECT
PATRIMONIO_BF.RETE AS Rete,
PATRIMONIO_BF.COD_FISCALE AS CodiceFiscale,
CASE
WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN
'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID
ELSE
'RISFIN|PIRAMIDE|' +
LEFT(PATRIMONIO_BF.ID_AREA,3) +
CASE
WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
ELSE ''
END + '|' + PATRIMONIO_BF.POSITION_ID
END AS Portafoglio,
CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
END AS CodiceProdotto,
'' AS Piazza,
'' AS CodiceValuta,
'' AS Classe,
DETTAGLIO_ASUL.CTV AS CtvNominale,
DETTAGLIO_ASUL.CTV AS CtvReale
FROM c6martperiodico.PATRIMONIO_BF
INNER JOIN c6martperiodico.DETTAGLIO_ASUL
ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
union all
SELECT
PATRIMONIO_BF.RETE AS Rete,
PATRIMONIO_BF.COD_FISCALE AS CodiceFiscale,
CASE
WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN
'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID
END AS Portafoglio,
'EUR' AS CodiceProdotto,
'' AS Piazza,
'' AS CodiceValuta,
'' AS Classe,
case when (sum(PATRIMONIO_BF.CTV_NOMINALE) - CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE) - CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
else 0.0001 end AS CtvNominale ,
--PATRIMONIO_BF.CTV_NOMINALE,
case when (sum(PATRIMONIO_BF.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
else 0.0001 end AS CtvReale
--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
INNER JOIN c6martperiodico.ANAG_PRODOTTI
ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('CC') and patrimonio_bf.ctv>0
group by
PATRIMONIO_BF.rete,
PATRIMONIO_BF.cod_fiscale,
CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
END,
CASE
WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN
'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID
END