PDC_REPORT_CreazioneDB/sql/Testbes/procedure/C6Mart_DM_PREVIDENZIALE.sql
2025-06-10 15:29:40 +02:00

88 lines
2.5 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PREVIDENZIALE]
AS
BEGIN
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_PREVIDENZIALE',
GETDATE(),
'Elaborazione giornaliera'
)
TRUNCATE TABLE C6MART.PREVIDENZIALE
INSERT INTO [C6Mart].[PREVIDENZIALE]
([RETE]
,[COD_FISCALE]
,[ANNO_PENSIONE]
,[ETA_PENSIONE]
,[TOT_CONSUMI_ATTESI]
,[TOT_REDDITO_ANNUO]
,[REDDITO_CONSUMI_ESS]
,[PENSIONE_ATTESA_]
,[RENDITA_PREV_COMPL]
,[RENDITA_ASS]
,[REDDITO_CONSUMI_SEC]
,[RENDITA_ASS_TRAD]
,[RENDITA_ASS_UNIT]
,[RENDITA_IMMOB]
,[ALTRE_RENDITE]
,[DIV_RIFERIMENTO]
,[CAMBIO]
,[ID_ELAB]
,[TIPO_ELAB])
SELECT
SUBSTRING(C6STAGING.ALL_CF_PB.RETE_PB,1,1) AS RETE,
SUBSTRING(C6STAGING.ALL_CF_PB.CODICE_FISCALE,1,16) AS COD_FISCALE,
YEAR(DATEADD(YY, QUANTIF.RETIREMENTYEARS, ALL_CF_PB.DATA_NASCITA)) AS ANNO_PENSIONE,
QUANTIF.RETIREMENTYEARS AS ETA_PENSIONE,
QUANTIF.EXPNEEDSAMT AS TOT_CONSUMI_ATTESI,
QUANTIF.GROSSINPRIMAMT + QUANTIF.GROSSINSECAMT AS TOT_REDDITO_ANNUO,
QUANTIF.GROSSINPRIMAMT AS REDDITO_CONSUMI_ESS,
QUANTIF.STATEPENSIONAMT AS PENSIONE_ATTESA_,
QUANTIF.PRIVATEPENSIONAMT AS RENDITA_PREV_COMPL,
QUANTIF.LIFEINTERESTAMT AS RENDITA_ASS,
QUANTIF.GROSSINSECAMT AS REDDITO_CONSUMI_SEC,
QUANTIF.INSINTERESTAMT AS RENDITA_ASS_TRAD,
QUANTIF.INVINTERESTAMT AS RENDITA_ASS_UNIT,
QUANTIF.REINTERESTAMT AS RENDITA_IMMOB,
ESTRAZIONE_OTHINTRST.ALTRE_RENDITE AS ALTRE_RENDITE,
QUANTIF.EXPNEEDSCUR AS DIV_RIFERIMENTO,
NULL AS CAMBIO,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB
FROM C6STAGING.ALL_CF_PB
INNER JOIN C6STAGING.QUANTIF ON ALL_CF_PB.ID_CLI = QUANTIF.F_OID__ADDRE_81D21
LEFT JOIN (
SELECT F_PQUANTIFIC_76FF6, SUM(INTERESTAMT) AS ALTRE_RENDITE
FROM C6STAGING.OTHINTRST
GROUP BY F_PQUANTIFIC_76FF6
) ESTRAZIONE_OTHINTRST
ON ESTRAZIONE_OTHINTRST.F_PQUANTIFIC_76FF6 = QUANTIF.OID_
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'DM_PREVIDENZIALE' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'DM_PREVIDENZIALE'
)
END