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

175 lines
3.8 KiB
SQL
Raw Blame History

-- Schema: C6Mart
-- Stored Procedure: RP_DM_W6CLIESG
-- =============================================
-- Author: Paolo Giovanetti / TRINGALI PER FIDUCIARIE
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_W6CLIESG]
AS
BEGIN
SET NOCOUNT ON;
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'RP_DM_W6CLIESG',
GETDATE(),
'Elaborazione Lettere di Benvenuto'
)
TRUNCATE TABLE C6Mart.SPB_W6CLIESG
TRUNCATE TABLE C6Mart.W6CLIESG
INSERT INTO C6Mart.SPB_W6CLIESG
(
[Rete]
,[Codice_Agente]
,[Codice_Fiscale]
,[Piva_Fiduciaria]
,[Codman]
,[BeneficioDiversificazione]
,[ValoreVaR]
,[Riserva]
,[PesoSostESG]
,[CSP]
,[ConcLungoPeriodo]
,[Liquidita]
,[NoSostESG]
,[SostPercE]
,[SostPercS]
,[SostPercG]
,[SostESGInLinea]
,[SostPercEInLinea]
,[SostPercSInLinea]
,[SostPercGInLinea]
,[NoSostSFDR]
,[SostSFDR]
,[SostSFDRInLinea]
,[NoSostTaxonomy]
,[SostTaxonomy]
,[SostTaxonomyInLinea]
,[NoSostPaiE]
,[SostPaiE]
,[SostPaiEInLinea]
,[NoSostPaiS]
,[SostPaiS]
,[SostPaiSInLinea]
,[Sost_E]
,[Sost_S]
,[Sost_G]
,[percESG]
,[UlterioriPrefSost]
,[PercSFDR]
,[PercTaxonomy]
,[PAI_E]
,[PAI_S]
,[ListPAI_E]
,[ListPAI_S])
SELECT distinct
[Rete]
,[Codice_Agente]
,case when ISNULL(CODMAN,'')<>'' then 'FF@'+CODMAN
else Codice_Fiscale end as Codice_Fiscale
,[Piva_Fiduciaria]
,[Codman]
,[BeneficioDiversificazione]
,[ValoreVaR]
,[Riserva]
,[PesoSostESG]
,[CSP]
,[ConcLungoPeriodo]
,[Liquidita]
,[NoSostESG]
,[SostPercE]
,[SostPercS]
,[SostPercG]
,[SostESGInLinea]
,[SostPercEInLinea]
,[SostPercSInLinea]
,[SostPercGInLinea]
,[NoSostSFDR]
,[SostSFDR]
,[SostSFDRInLinea]
,[NoSostTaxonomy]
,[SostTaxonomy]
,[SostTaxonomyInLinea]
,[NoSostPaiE]
,[SostPaiE]
,[SostPaiEInLinea]
,[NoSostPaiS]
,[SostPaiS]
,[SostPaiSInLinea]
,[Sost_E]
,[Sost_S]
,[Sost_G]
,[percESG]
,[UlterioriPrefSost]
,[PercSFDR]
,[PercTaxonomy]
,isnull([PAI_E],'')
,isnull([PAI_S],'')
,[ListPAI_E]
,[ListPAI_S]
FROM [C6StampeCentralizzate].[C6Staging].[SPB_W6CliESG]
drop table if exists #st_split_E
drop table if exists #st_split_S
drop table if exists #st_split_ES
-- Step 1: Creazione delle tabelle temporanee
SELECT
value AS ListPAI_E,
[Rete],
[Codice_Agente],
CASE
WHEN CODMAN <> '' THEN 'FF@' + CODMAN
ELSE Codice_Fiscale
END AS COD_FISCALE
INTO #st_split_E
FROM C6Mart.SPB_W6CLIESG
CROSS APPLY STRING_SPLIT(ListPAI_E, '|')
SELECT
value AS ListPAI_S,
[Rete],
[Codice_Agente],
CASE
WHEN CODMAN <> '' THEN 'FF@' + CODMAN
ELSE Codice_Fiscale
END AS COD_FISCALE
INTO #st_split_S
FROM C6Mart.SPB_W6CLIESG
CROSS APPLY STRING_SPLIT(ListPAI_S, '|')
--select * from C6Mart.SPB_W6CLIESG
--select * from #st_split_E
--select * from #st_split_S
-- Step 2: Aggregare le descrizioni in un'unica query
SELECT
[Rete],
[COD_FISCALE],
STRING_AGG(CASE
WHEN ListPAI_E = 'PAI_A01' THEN 'Emissioni gas serra'
WHEN ListPAI_E = 'PAI_A02' THEN 'Biodiversit<EFBFBD>'
WHEN ListPAI_E = 'PAI_A03' THEN 'Acqua'
WHEN ListPAI_E = 'PAI_A04' THEN 'Rifiuti'
WHEN ListPAI_E = 'PAI_A05' THEN 'Governativi di tipo Ambientale'
WHEN ListPAI_E = 'PAI_A07' THEN 'Efficienza energetica'
WHEN ListPAI_E = 'PAI_A0