-- 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à'
        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
