115 lines
3.9 KiB
SQL
115 lines
3.9 KiB
SQL
-- Schema: C6Mart
|
|
-- Stored Procedure: PL_S102DistribuzioneRischioCredito_OLD
|
|
|
|
|
|
|
|
-- =============================================
|
|
-- Authors: <Alessandro Tringali, Valerio Colaianni>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
-- [C6Mart].[PL_S102DistribuzioneRischioCredito] 'F','BRZGPP39H08C352F'
|
|
CREATE procedure [C6Mart].[PL_S102DistribuzioneRischioCredito_OLD]
|
|
-- 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.
|
|
SET NOCOUNT ON;
|
|
|
|
|
|
|
|
--QUERY PER INTERMEDIARIO
|
|
SELECT
|
|
RETE,
|
|
COD_FISCALE,
|
|
INTERMEDIARIO,
|
|
CASE WHEN INTERMEDIARIO IN ( 'Banca Fideuram', 'Sanpaolo Invest') THEN 1
|
|
ELSE 2 END AS ORDINE,
|
|
SUM(CTV) AS CTV_TOT,
|
|
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END) AS CTV_notCovered,
|
|
SUM(CASE WHEN RISKCLASS = 'Classe A' THEN CTV ELSE 0 END) AS CTV_Class1,
|
|
SUM(CASE WHEN RISKCLASS = 'Classe B' THEN CTV ELSE 0 END) AS CTV_Class2,
|
|
SUM(CASE WHEN RISKCLASS = 'Classe C' THEN CTV ELSE 0 END) AS CTV_Class3,
|
|
SUM(CASE WHEN RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) AS CTV_overClass3,
|
|
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) AS CTV_na,
|
|
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS PERC_notCovered,
|
|
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS PERC_class1,
|
|
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe B' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS PERC_class2,
|
|
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe C' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS PERC_class3,
|
|
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS perc_overClass3,
|
|
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100 END as PERC_NA
|
|
FROM
|
|
(
|
|
-- Start 1.1
|
|
SELECT
|
|
PATRBF.RETE,
|
|
PATRBF.COD_FISCALE,
|
|
CASE
|
|
WHEN RISCHIO_PROD.COPERTURA < 100
|
|
THEN 'NON COPERTO'
|
|
WHEN DESCRIZIONE IS NULL
|
|
THEN 'NA'
|
|
ELSE DESCRIZIONE
|
|
END AS RISKCLASS,
|
|
CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
|
|
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
|
|
FROM
|
|
[C6MART].PATRIMONIO_BF PATRBF
|
|
LEFT OUTER JOIN
|
|
(select cod_fiscale, rete, sum(ctv) as cc_ctv
|
|
from
|
|
[C6MART].pATRIMONIO_BF
|
|
where id_Area='Cc'
|
|
group by cod_fiscale, rete
|
|
) ctvcc
|
|
on
|
|
patrbf.cod_fiscale=ctvcc.cod_fiscale
|
|
and
|
|
patrbf.rete=ctvcc.rete
|
|
LEFT OUTER JOIN
|
|
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD
|
|
ON
|
|
PATRBF.RETE= RISCHIO_PROD.RETE
|
|
AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
|
|
AND RISCHIO_PROD.COD_AGGREG =
|
|
CASE
|
|
WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
|
|
THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
|
|
--V
|
|
WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
|
|
THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|'
|
|
WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
|
|
THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'
|
|
WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
|
|
THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'
|
|
--
|
|
END + PATRBF.POSITION_ID
|
|
--INNER JOIN C6MART.CODIFICA_CREDITRISK CR
|
|
LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
|
|
ON RISCHIO_PROD.CREDITRISK = cr.profilo
|
|
--V
|
|
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
|
|
PATRBF.RETE = @Rete
|
|
--
|
|
GROUP BY
|
|
PATRBF.RETE,
|
|
PATRBF.COD_FISCALE,
|
|
CASE
|
|
WHEN RISCHIO_PROD.COPERTURA < 100
|
|
THEN 'NON COPERTO'
|
|
WHEN DESCRIZIONE IS NULL
|
|
THEN 'NA'
|
|
ELSE DESCRIZIONE
|
|
END,
|
|
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END
|
|
|
|
--- End 1.1
|
|
UNION ALL
|
|
-- Start 1.2
|
|
SELECT
|
|
PATRTERZI.RETE,
|
|
PATRTER
|