CREATE procedure [C6MartPeriodico].[RP_DM_W6CKADEG] as begin drop table if exists #tot exec [dbo].[CreaTabellaBackUp] 'W6CKADEG','C6MartPeriodico','preBonifica' declare @countAppoLimiter int select @countAppoLimiter= count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER if(@countAppoLimiter=0) begin truncate table C6MartPeriodico.W6CKADEG --select Rete, -- Chiave_Acn, -- Codfis, -- Codman, -- Dttrim, -- Adeg_Rischio, -- Adeg_Riserva, -- Adeg_Invl_Period, -- Adeg_Compl, -- Adeg_Conc_ProdCompl, -- Adeg_Freq_Oper, -- Adeg_Conc_Emitt, -- Adeg_Conc_Valut -- from #tot insert into C6MartPeriodico.W6CKADEG SELECT wsei.Rete, wsei.Chiave_Acn, wsei.Codfis, wsei.Codman, wsei.Dttrim, CASE WHEN 'N' IN (Adeg_Rischio, Adeg_Riserva, Adeg_Invl_Period, Adeg_Compl, Adeg_Conc_ProdCompl, Adeg_Freq_Oper, Adeg_Conc_Emitt, Adeg_Conc_Valut) THEN 'N' ELSE 'S' END AS Adeg_Check, wsei.Adeg_Rischio, wsei.Adeg_Riserva, wsei.Adeg_Invl_Period, wsei.Adeg_Compl, wsei.Adeg_Conc_ProdCompl, wsei.Adeg_Freq_Oper, wsei.Adeg_Conc_Emitt, wsei.Adeg_Conc_Valut, wsei.Rfa_tot, wsei.Rfa_sei, wsei.Riserva, wsei.Profilo, wsei.Profilo_EC, wsei.Indicatore_ChiamataR4, wsei.Flg_Legali_Rappresentanti --into C6MartPeriodico.W6CKADEG FROM C6MartPeriodico.vW6CKADEG wsei inner join C6StagingPeriodico.appo_contratti appo on appo.rete=wsei.Rete and appo.cod_fiscale=wsei.Chiave_Acn end else begin delete from [C6MartPeriodico].[W6CKADEG] where rete+CHIAVE_ACN in (select rete+cod_fiscale from C6StagingPeriodico.APPO_CONTRATTI_LIMITER) insert into C6MartPeriodico.W6CKADEG SELECT wsei.Rete, wsei.Chiave_Acn, wsei.Codfis, wsei.Codman, wsei.Dttrim, CASE WHEN 'N' IN (Adeg_Rischio, Adeg_Riserva, Adeg_Invl_Period, Adeg_Compl, Adeg_Conc_ProdCompl, Adeg_Freq_Oper, Adeg_Conc_Emitt, Adeg_Conc_Valut) THEN 'N' ELSE 'S' END AS Adeg_Check, wsei.Adeg_Rischio, wsei.Adeg_Riserva, wsei.Adeg_Invl_Period, wsei.Adeg_Compl, wsei.Adeg_Conc_ProdCompl, wsei.Adeg_Freq_Oper, wsei.Adeg_Conc_Emitt, wsei.Adeg_Conc_Valut, wsei.Rfa_tot, wsei.Rfa_sei, wsei.Riserva, wsei.Profilo, wsei.Profilo_EC, wsei.Indicatore_ChiamataR4, wsei.Flg_Legali_Rappresentanti --into C6MartPeriodico.W6CKADEG FROM C6MartPeriodico.vW6CKADEG wsei inner join C6StagingPeriodico.APPO_CONTRATTI_LIMITER appo on appo.rete=wsei.Rete and appo.cod_fiscale=wsei.Chiave_Acn end --casi particolari update C6MartPeriodico.W6CKADEG set Adeg_Check='N' where Indicatore_ChiamataR4='Z' --clcompl=Z and Profilo=0 -- profilo Scaduto --and isnull(Rfa_sei,0.00)=0.00 -- Rfa_sei = 0 e >0 adeg_check deve essere comunque = N update C6MartPeriodico.W6CKADEG set Adeg_Check='S' where Indicatore_ChiamataR4='Z' --clcompl=Z and Profilo>0 -- profilo non scaduto and isnull(Rfa_tot,0.00)=0.00 --rfa totale =0 and isnull(Riserva,0.00)=0.00 -- riserva =0 update C6MartPeriodico.W6CKADEG set Adeg_Check='N' where Indicatore_ChiamataR4='Z' --clcompl=Z and Profilo>0 -- profilo non scaduto and isnull(Rfa_tot,0.00)=0.00 --rfa totale =0 and isnull(Riserva,0.00)>0.00 -- riserva >0 update C6MartPeriodico.W6CKADEG set Adeg_Check='S' where Indicatore_ChiamataR4='Z' --clcompl=Z and Profilo>0 -- profilo non scaduto and isnull(Rfa_tot,0.00)<>0.00 ----Clienti Solo CC --drop table if exists #clienti_soloCC --SELECT DISTINCT RETE, Cod_fiscale --into #clienti_soloCC --FROM C6MartPeriodico.PATRIMONIO_BF --WHERE TIPO_PRODOTTO = 'CC' AND ID_AREA = 'liq' --AND Cod_fiscale NOT IN ( -- SELECT Cod_fiscale -- FROM C6MartPeriodico.PATRIMONIO_BF -- WHERE (TIPO_PRODOTTO <> 'CC' OR ID_AREA <> 'liq') --) --update a --set a.Adeg_Check='S' --from C6MartPeriodico.W6CKADEG a --inner join #clienti_soloCC cc --on a.rete=cc.rete and a.Chiave_Acn=cc.cod_fiscale --where a.Indicatore_ChiamataR4='Z' --clcompl=Z --and a.Profilo>0 -- profilo non scaduto --and isnull(Rfa_tot,0.00)<>0.00 --rfa totale <>0 ---- Clienti prodotti Fuori perimetro -- drop table if exists #clienti_prodotti_fuori_adeg -- drop table if exists #clienti_prodotti_fuori_adeg2 -- select rete,cod_fiscale, count(senza.CodInterno) as Contatore_Prodotti_fuori_Adeguatezza,count(patr.cod_Interno) as contatore_tutti_prodotti -- into #clienti_prodotti_fuori_adeg -- from c6martperiodico.patrimonio_bf patr -- left join [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza -- on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto -- group by rete,COD_FISCALE -- select rete,cod_fiscale,Contatore_Prodotti_fuori_Adeguatezza,contatore_tutti_prodotti -- into #clienti_prodotti_fuori_adeg2 -- from #clienti_prodotti_fuori_adeg -- where Contatore_Prodotti_fuori_Adeguatezza=contatore_tutti_prodotti ---- select * from #clienti_prodotti_fuori_adeg2 -- update a --set a.Adeg_Check='S' --from C6MartPeriodico.W6CKADEG a --inner join #clienti_prodotti_fuori_adeg2 cc --on a.rete=cc.rete and a.Chiave_Acn=cc.cod_fiscale --where a.Indicatore_ChiamataR4='Z' --clcompl=Z --and a.Profilo>0 -- profilo non scaduto --and isnull(Rfa_tot,0.00)<>0.00 --rfa totale <>0 ----EC -1 --update C6MartPeriodico.W6CKADEG --set Adeg_Check='S' --where Indicatore_ChiamataR4='Z' --clcompl=Z --and Profilo>0 -- profilo non scaduto --and isnull(Rfa_tot,0.00)<>0.00 --rfa totale =0 --and Profilo_EC='-1' ----Flag Legali Rappresentanti --update C6MartPeriodico.W6CKADEG --set Adeg_Check='S' --where Indicatore_ChiamataR4='Z' --clcompl=Z --and Profilo>0 -- profilo non scaduto --and isnull(Rfa_tot,0.00)<>0.00 --rfa totale =0 --and Flg_Legali_Rappresentanti='S' --SI --NO --NA Non Applicabile --NR Non restituito, Professionale END