PDC_REPORT_CreazioneDB/sql/storedTestbes/C6Mart_DM_RISCHIO_AGGREGATO.sql
2025-06-06 19:02:52 +02:00

106 lines
3.8 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_AGGREGATO]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @ID_ELAB INT
DECLARE @TIPO_ELAB VARCHAR(1)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @TIPO_ELAB = C6MART.GETTIPOELAB()
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'DM_RISCHIO_AGGREGATO',
GETDATE(),
'Elaborazione giornaliera'
)
-- Insert statements for procedure here
TRUNCATE TABLE C6MART.RISCHIO_AGGREGATO
INSERT INTO C6MART.RISCHIO_AGGREGATO(
RETE,
COD_FISCALE,
COD_AGGREG,
VAR_ASSOLUTO_PTF,
VAR_PERC_PTF,
CVAR_ASSOLUTO_PTF,
CVAR_PERC_PTF,
MCVAR,
MCVARP,
BENEFICIO,
COPERTURA,
CTV_AGGREG,
ID_ELAB,
TIPO_ELAB,
CREDITRISK,
Ully_perc,
CREDITRISKEMIT
)
SELECT
PROMETEIA_AGGR.RETE AS RETE,
PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
-- ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_ASSOLUTO_PTF,
-- ROUND(CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_PERC_PTF,
ROUND(CAST(cast(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO as float) AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,
CAST(cast(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO as float) AS DECIMAL(10,2)) AS VAR_PERC_PTF,
ROUND(CAST(cast(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO as float) AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,
CAST(cast(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO as float) AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
ROUND(CAST(cast(PROMETEIA_AGGR.MCVAR as float) AS DECIMAL(30,20)), 2) AS MCVAR,
CAST(cast(PROMETEIA_AGGR.MCVARP as float) AS DECIMAL(10,2)) AS MCVARP,
CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
--V il CC deve avere sempre copertura = 100
CASE
WHEN PORTAFOGLIO = 'COMPLESSIVO|BF|CC' THEN 100
--intervento correttivo per mancata conversione da varchar a int dell'08/04/22
--ELSE CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2))
ELSE CAST(cast(PROMETEIA_AGGR.COPERTURA as float) AS DECIMAL(10,2))
--fine intervento correttivo per mancata conversione da varchar a int dell'08/04/22
END AS COPERTURA,
CAST(cast(PROMETEIA_AGGR.TOTALE as float) AS DECIMAL(30,20)) AS CTV_AGGREG,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB,
-- modifica del 3/10/2018 per gestire i casi in cui numtitrc contiene caratteri speciali (cr e lf)
--c6mart.getCreditRiskClass(Ully_perc,numtitrc) as CREDITRISKCLASS,
c6mart.getCreditRiskClass(Ully_perc,REPLACE(REPLACE(numtitrc, CHAR(13),''), CHAR(10),'')) as CREDITRISKCLASS,
-- fine modifica del 3/10/2018
CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,
-- modifica del 3/10/2018 per gestire i casi in cui numtitrc contiene caratteri speciali (cr e lf)
--c6mart.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT
c6mart.getCreditRiskClassEmit(Ully_perc,REPLACE(REPLACE(numtitrc, CHAR(13),''), CHAR(10),'')) as CREDITRISKCLASS_EMIT
-- fine modifica del 3/10/2018
FROM C6STAGING.PROMETEIA_AGGR
--modifica per percentuali congruenti su PdC 23/07/2023 con adeguatezza
update VC
set VC.VAR_COMPLESSIVO_BF=RA.VAR_PERC_PTF
FROM
C6Mart.RISCHIO_AGGREGATO AS RA
INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
ON RA.RETE = VC.RETE
AND RA.COD_FISCALE = VC.COD_FISCALE
where RA.COD_AGGREG = 'COMPLESSIVO|BF'
--fine modifica
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'DM_RISCHIO_AGGREGATO' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'DM_RISCHIO_AGGREGATO'
)
END