-- Schema: C6Mart -- Stored Procedure: RP_DM_W6CLIESG -- ============================================= -- Author: Paolo Giovanetti / TRINGALI PER FIDUCIARIE -- Create date: -- 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à' 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