126 lines
3.8 KiB
Transact-SQL
126 lines
3.8 KiB
Transact-SQL
-- Schema: C6Mart
|
|
-- Stored Procedure: DM_RISCHIO_AGGREGATO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
-- 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_AG
|