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

145 lines
3.9 KiB
SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: PL_D2_S169RischiomercatoRischiocredito
-- Stored procedure
-- =============================================
-- Author: <Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--[C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] 'S','BLDMCL41L09L378V'
CREATE procedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito]
-- 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;
SELECT
PATRBF.RETE,
PATRBF.COD_FISCALE,
PATRBF.INSTITUTENAME,
CTV,
M.PROFILO_ASS AS CODICEPROFILO,
CR.MAX_VAR AS VARMAX,
RISK_AGG.VAR_PERC_PTF AS VAR ,
CASE
WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.'
ELSE NULL
END AS VARSTRING,
RISK_AGG.CREDITRISK RISKCLASS,
CASE
WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.'
WHEN RISK_AGG.creditrisk is null THEN 'n.a.'
WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.'
ELSE NULL
END AS RISKCLASSSTRING,
ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
-- CASE
-- WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.'
-- ELSE
NULL
-- END
AS COVERAGESTRING,
M.RISKCLASS AS RISKCLASSMAX,
round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) /
-- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
THEN 1
ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
END)
*100 ,2)AS PERCENTAGE,
--V
ORDINE,
RISK_AGG.Ully_perc
-- 16/7/2018
into #appo
-- fine 16/7/2018
FROM
(
select
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
SUM(PATRBF.CTV) AS CTV,
--V
1 as ORDINE,
RISK_AGG.Ully_perc
from
c6martperiodico.patrimonio_bf PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
where
1=1
and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE
and PATRBF.rete= RISK_AGG.rete
and PATRBF.cod_fiscale = @codiceFiscale
and PATRBF.rete= @rete
and PATRBF.CTV > 0
and
(
RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
--RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
)
GROUP BY
PATRBF.RETE,
PATRBF.COD_FISCALE,
RISK_AGG.Ully_perc,
CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END
UNION
SELECT
TERZI.RETE,
TERZI.COD_FISCALE,
'Patrimonio altri Istituti' AS INSTITUTENAME,
SUM(ROUND(TERZI.CTV,2)) AS CTV,
--V
2 as ORDINE,
RISK_AGG.Ully_perc
FROM
c6martperiodico.PATRIMONIO_TERZI TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
where
1=1
and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE
and TERZI.rete= RISK_AGG.rete
and TERZI.cod_fiscale =@codiceFiscale
and TERZI.rete=@rete
and TERZI.CTV > 0
and
(
--RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
)
GROUP BY
TERZI.RETE,
TERZI.COD_FISCALE,
RISK_AGG.Ully_perc
) PATRBF
LEFT OUTER JOIN
c6martperiodico.MIFID AS M
ON
PATRBF.COD_FISCALE=M.COD_FISCALE
AND PATRBF.RETE=M.RETE
LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
LEFT OUTER JOIN
c6martperiodico.CODIFICA_CREDITRISK CK
ON
M.riskclass=CK.PROFILO
LEF