81 lines
2.6 KiB
Transact-SQL
81 lines
2.6 KiB
Transact-SQL
CREATE procedure [C6MartPeriodico].[RP_DM_W6IndPtf]
|
|
as
|
|
begin
|
|
exec [dbo].[CreaTabellaBackUp] 'W6IndPtf','C6MartPeriodico'
|
|
declare @countAppoLimiter int
|
|
select @countAppoLimiter= count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER
|
|
drop table if exists #tot
|
|
if(@countAppoLimiter=0)
|
|
begin
|
|
truncate table C6MartPeriodico.W6IndPtf
|
|
INSERT INTO [C6MartPeriodico].[W6IndPtf]
|
|
([DTTRIM]
|
|
,[RETE]
|
|
,[CHIAVE_ACN]
|
|
,[CODFIS]
|
|
,[CODMAN]
|
|
,[PTF_DIVERSIFICATO]
|
|
,[PTF_ADEGUATO]
|
|
,[BLACKLIST]
|
|
,[DATA_ORA_INSE]
|
|
,[DATA_ORA_AGGI])
|
|
select
|
|
distinct
|
|
ad.Dttrim,
|
|
ad.Rete,
|
|
ad.Chiave_Acn as Chiave_Acn,
|
|
ad.Codfis,
|
|
ad.Codman,
|
|
case when isnull(ptf.flg_NonDiv,'N')='S' then 'N' else 'S' end as flg_NonDiv,
|
|
ad.adeg_check,
|
|
case when e.rete IS not null then 'S' else 'N' end as Blacklist,
|
|
NULL as DATA_ORA_INSE,
|
|
NULL as DATA_ORA_AGGI
|
|
from C6MartPeriodico.W6CKADEG ad
|
|
inner join C6StagingPeriodico.appo_contratti appo
|
|
on appo.rete=ad.Rete and appo.cod_fiscale=ad.Chiave_Acn
|
|
left join C6MartPeriodico.RP_ClientiPtfNonDiv ptf
|
|
on ad.Rete=ptf.rete and ad.Chiave_Acn=ptf.chiave_acn
|
|
left join (select distinct rete,codicefiscale from C6MartPeriodico.ExcludedList) e on ad.Rete=e.Rete and ad.Chiave_Acn=e.codicefiscale
|
|
WHERE appo.tip_contratto<>'3'
|
|
end
|
|
--select distinct * from C6MartPeriodico.W6IndPtf
|
|
else
|
|
delete from [C6MartPeriodico].[W6IndPtf] where rete+CHIAVE_ACN in (select rete+cod_fiscale from C6StagingPeriodico.APPO_CONTRATTI_LIMITER)
|
|
INSERT INTO [C6MartPeriodico].[W6IndPtf]
|
|
([DTTRIM]
|
|
,[RETE]
|
|
,[CHIAVE_ACN]
|
|
,[CODFIS]
|
|
,[CODMAN]
|
|
,[PTF_DIVERSIFICATO]
|
|
,[PTF_ADEGUATO]
|
|
,[BLACKLIST]
|
|
,[DATA_ORA_INSE]
|
|
,[DATA_ORA_AGGI])
|
|
select
|
|
distinct
|
|
ad.Dttrim,
|
|
ad.Rete,
|
|
ad.Chiave_Acn as Chiave_Acn,
|
|
ad.Codfis,
|
|
ad.Codman,
|
|
case when isnull(ptf.flg_NonDiv,'N')='S' then 'N' else 'S' end as flg_NonDiv,
|
|
ad.adeg_check,
|
|
case when e.rete IS not null then 'S' else 'N' end as Blacklist,
|
|
NULL as DATA_ORA_INSE,
|
|
NULL as DATA_ORA_AGGI
|
|
from C6MartPeriodico.W6CKADEG ad
|
|
inner join C6StagingPeriodico.APPO_CONTRATTI_LIMITER appo_lim
|
|
on appo_lim.rete=ad.Rete and appo_lim.cod_fiscale=ad.Chiave_Acn
|
|
left join C6StagingPeriodico.APPO_CONTRATTI appo
|
|
on appo.rete=ad.Rete and appo.cod_fiscale=ad.Chiave_Acn
|
|
left join C6MartPeriodico.RP_ClientiPtfNonDiv ptf
|
|
on ad.Rete=ptf.rete and ad.Chiave_Acn=ptf.chiave_acn
|
|
left join (select distinct rete,codicefiscale from C6MartPeriodico.ExcludedList) e on ad.Rete=e.Rete and ad.Chiave_Acn=e.codicefiscale
|
|
WHERE appo.tip_contratto<>'3'
|
|
--SI
|
|
--NO
|
|
--NA Non Applicabile
|
|
--NR Non restituito, Professionale
|
|
END |