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

141 lines
3.9 KiB
Transact-SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: Popola_S80BisEvoluzioneRischio_20171222
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_20171222]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @DataCongelamento DATETIME
SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio
insert into c6martperiodico.tb_S80BisEvoluzioneRischio
SELECT
ini.rete,
ini.COD_FISCALE,
1 AS Fase,
INI.DATA_FOTO AS DataFase,
INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
--V
CASE
WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
ELSE ROUND(INI.VAR_COMPLESSIVO,2)
END AS VarComplessivo,
INI.VAR_COPERTURA AS Copertura,
INI.RISKCLASS,
INI.RISKCLASSMAX,
case
when INI.RISKCLASS is null then 'n.d.'
when INI.RISKCLASS = 0 then 'n.a.'
else null
end as RiskClassString,
case
when INI.RISKCLASSMAX is null then 'n.d.'
when INI.RISKCLASSMAX = 0 then 'n.a.'
else null
end as RiskClassMaxString
FROM
C6MartPeriodico.MONITORAGGIO_INIZIALE INI
LEFT OUTER join
C6MartPeriodico.MONITORAGGIO_REPORT rep
on
REP.RETE=INI.RETE
AND
REP.COD_FISCALE=INI.COD_FISCALE
UNION ALL
-- Precedente invio report
SELECT
rep.RETE ,
rep.COD_FISCALE ,
2 AS Fase,
rep.DATA_INVIO AS DataFase,
rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
--V
CASE
WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO
ELSE ROUND(rep.VAR_COMPLESSIVO,2)
END AS VarComplessivo,
rep.VAR_COPERTURA AS Copertura,
rep.RISKCLASS,
rep.RISKCLASSMAX,
case when rep.RISKCLASS is null then 'n.a.'
else null
end as RiskClassString,
case when rep.RISKCLASSMAX is null then 'n.a.'
else null
end as RiskClassMaxString
FROM
C6MartPeriodico.MONITORAGGIO_INIZIALE INI
left outer join
C6MartPeriodico.MONITORAGGIO_REPORT rep
on
REP.RETE=INI.RETE
AND
REP.COD_FISCALE=INI.COD_FISCALE
WHERE
-- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
-- del qc su cf F/TRRLDA52D04G190A)
--INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(REP.DATA_INVIO,cast('29991231' as datetime)),112)
-- fine modifica del 24/7/2017
and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento
UNION ALL
-- Situazione corrente
SELECT
BF.RETE ,
BF.COD_FISCALE,
3 fase,
CASE
WHEN @DataCongelamento IS NULL THEN GETDATE()
ELSE @DataCongelamento
END AS DataFase,
CR.MAX_VAR AS VarMassimoProfiloFinanziario,
--V
CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00
ELSE ROUND(RA.VAR_PERC_PTF,2)
END AS VarComplessivo,
--CASE
-- WHEN (@contaPOS - @contaCC = 0 ) THEN 100
-- ELSE isnull(RA.COPERTURA,0)
--END AS Copertura,
isnull(RA.COPERTURA,0) as copertura,
-- TRINGALI MODIFICARE
ra.creditrisk as RISKCLASS,
mifid.riskclass as RISKCLASSMAX,
case when ra.creditrisk is null then 'n.a.'
else null end as RiskClassString,
case when mifid.riskclass is null then 'n.a.'
else null end as RiskClassMaxString
FROM
C6MartPerio