----------------------------------------------------------------------------- CREATE procedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI] AS -- Log esecuzione INSERT INTO LOG_ESECUZIONE_PERIODICO (Nome, Inizio, Nota) VALUES ( 'RP_DM_CONTRATTOSEI', GETDATE(), 'Elaborazione trimestrale' ) TRUNCATE TABLE C6MartPERIODICO.CONTRATTOSEI INSERT INTO C6MartPERIODICO.CONTRATTOSEI SELECT r.[Rete], r.[Cod_Fiscale], r.[PIva_Fiduciaria], r.[DATA_INZIOAVANZATO] as [Data_Sott], r.[CodiceContratto], r.[Cod_Agente], r.[Data_Perf_Base], r.[Data_Perf], null as [Fascia_CPP], null as [Email], r.[Indirizzo], r.[CAP], r.[Citta], r.[Provincia], r.[Nazione], r.[Presso], null as[Data_Inizio], r.[Freq_Diagnosi], r.[FREQ_MONITORAGGIO], null as [Freq_DiagnosiPrec], null as [Freq_MonitorPrec], null as [Data_InizioConsInv], r.[Data_InizioBase], r.[Data_FineBase], r.[DATA_INZIOAVANZATO], r.[Data_FineAvanzato], null as [ProgressivoInvio], 'N', 'N', null as [DataUltimoInvio], r.[ClienteMigrato], r.[RisorseNA], null as [PartViaDisinv], r.[NumSolleciti], r.[Data_UltimoSollecito], r.[NumRevoche], r.[Data_UltimaRevoca], null as [Note], null as [Data_Invio_Diagnosi_Trimestrale], null as [Data_Invio_Monitoraggio_Trimestrale], r.[ProfiloAttivo], null as [Rol], r.[TIP_CONTRATTO], r.[TIP_RIATTIVAZIONE] FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] r left join C6MartPeriodico.ANAG_CLIENTI a on a.RETE=r.rete and a.COD_FISCALE=r.COD_FISCALE -- Log esecuzione UPDATE LOG_ESECUZIONE_PERIODICO SET Fine = GETDATE(), Tipo = 'INSERT', Righe = @@ROWCOUNT WHERE Nome = 'RP_DM_CONTRATTOSEI' AND Inizio = ( SELECT MAX(Inizio) FROM LOG_ESECUZIONE_PERIODICO WHERE Nome = 'RP_DM_CONTRATTOSEI' ) UPDATE c6martperiodico.contrattosei set indirizzo = a.indirizzo ,cap = a.cap ,citta = a.citta ,prov = a.Provincia ,nazione = a.Nazione ,presso = a.Presso ,Cod_Agente = a.Cod_Agente ,Freq_Diagnosi = a.Freq_Diagnosi ,FREQ_MONITOR = a.FREQ_MONITORAGGIO from c6mart.vcontratti a inner join c6martperiodico.contrattosei b on a.codicecontratto = b.codicecontratto UPDATE contr set indirizzo = a.indirizzo ,cap = a.cap ,citta = a.citta ,provincia = a.Prov ,nazione = a.Nazione ,presso = a.Presso ,Cod_Agente = a.Cod_Agente ,Freq_Diagnosi = a.Freq_Diagnosi ,FREQ_MONITORAGGIO = a.FREQ_MONITOR from c6martperiodico.contrattosei a inner join [C6StagingPeriodico].[APPO_CONTRATTI] contr on a.codicecontratto = contr.codicecontratto left join [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete where lim.cod_fiscale is not null or 0 = (select count(*) from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] with (nolock)) -- Allineamento Flag Rol su contratto sei Update C6MartPeriodico.ContrattoSei Set Rol = Case D.statorol When 'S' then D.statorol Else 'N' End, EmAil = Case d.alertrol When 'S' then D.Email End from C6MartPeriodico.ContrattoSei C inner join C6StagingPeriodico.datiRol2 D on d.codContratto = c.codiceContratto