191 lines
6.3 KiB
Transact-SQL
191 lines
6.3 KiB
Transact-SQL
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'
|
|
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio]
|
|
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()
|
|
select @DataCongelamento
|
|
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
|
|
C6MartPeriodico.vPatrimonioBFAggregato AS BF
|
|
INNER JOIN C6MartPeriodico.MIFID AS MIFID
|
|
ON BF.RETE = MIFID.RETE
|
|
AND BF.COD_FISCALE = MIFID.COD_FISCALE
|
|
INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
|
|
ON MIFID.PROFILO_ASS = CR.PROFILO
|
|
LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
|
|
ON RA.RETE = BF.RETE
|
|
AND RA.COD_FISCALE = BF.COD_FISCALE
|
|
AND RA.COD_AGGREG = 'COMPLESSIVO|BF'
|
|
-- Aggiornamento Copertura
|
|
update s80
|
|
set copertura = ( CASE
|
|
WHEN (nocc - CC = 0 ) THEN 100
|
|
ELSE copertura
|
|
END )
|
|
from c6martperiodico.tb_S80BisEvoluzioneRischio s80
|
|
inner join (
|
|
select rete,cod_fiscale
|
|
,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc
|
|
,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc
|
|
from
|
|
( select rete,cod_fiscale,tipo_prodotto,count(*) tot
|
|
from c6martperiodico.patrimonio_Bf
|
|
--where cod_fiscale = @codiceFiscale and rete = @rete
|
|
group by rete,cod_fiscale,tipo_prodotto
|
|
) as gr
|
|
group by rete,cod_fiscale
|
|
) as tabCount
|
|
on tabcount.rete= s80.rete and tabcount.cod_fiscale=s80.codicefiscale
|
|
-- Aggiornamento
|
|
SELECT RETE,COD_FISCALE, COUNT(*) tot
|
|
into #ini
|
|
FROM
|
|
C6MARTPERIODICO.MONITORAGGIO_INIZIALE
|
|
group by RETE,COD_FISCALE
|
|
having count(*) = 0
|
|
SELECT RETE,COD_FISCALE, COUNT(*) tot
|
|
into #att
|
|
FROM
|
|
C6MARTPERIODICO.MONITORAGGIO_ATTUALE
|
|
group by RETE,COD_FISCALE
|
|
having count(*) = 0
|
|
SELECT RETE,COD_FISCALE, COUNT(*) tot
|
|
into #ris
|
|
FROM C6MARTPERIODICO.RISCHIO_AGGREGATO
|
|
group by RETE,COD_FISCALE
|
|
having count(*) = 0
|
|
delete s80
|
|
from c6martperiodico.tb_S80BisEvoluzioneRischio s80
|
|
inner join (
|
|
select distinct
|
|
case when #ini.rete is null
|
|
then
|
|
case when #att.rete is null
|
|
then #ris.rete
|
|
else #att.rete
|
|
end
|
|
else #ini.rete
|
|
end rete,
|
|
case when #ini.cod_fiscale is null
|
|
then
|
|
case when #att.cod_fiscale is null
|
|
then #ris.cod_fiscale
|
|
else #att.cod_fiscale
|
|
end
|
|
else #ini.cod_fiscale
|
|
end codicefiscale
|
|
from #ini
|
|
right JOIN #att on #ini.rete = #att.rete and #att.cod_fiscale=#ini.cod_fiscale
|
|
right JOIN #ris on #ini.rete = #ris.rete and #ris.cod_fiscale=#ini.cod_fiscale
|
|
) cont
|
|
on cont.rete=s80.rete and cont.codicefiscale=s80.codicefiscale
|
|
--aggiunta insert into pez 20240628 poi da togliere
|
|
-- insert into[C6MartPeriodico].[TB_S80BisEvoluzioneRischio]
|
|
--select * from [C6MartPeriodico].[TB_S80BisEvoluzioneRischio_pez]
|
|
END |