-- ============================================= -- Author: Paolo Giovanetti -- Create date: 24/11/2008 -- Description: Aggiunta chiave primaria autoincrement su tabella di staging -- per eliminazione duplicati. -- ============================================= CREATE procedure [C6MartPeriodicoImmobiliare].[DM_MIFID] AS BEGIN SET NOCOUNT ON; DECLARE @ID_ELAB INT DECLARE @TIPO_ELAB VARCHAR(1) SET @ID_ELAB = C6MartPeriodico.GETIDELAB() SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB() -- Log esecuzione INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE (Nome, Inizio, Nota) VALUES ( 'DM_MIFID', GETDATE(), 'Elaborazione trimestrale Immobiliare' ) TRUNCATE TABLE C6MartPeriodicoImmobiliare.MIFID INSERT INTO C6MartPeriodicoImmobiliare.[MIFID] ([RETE] ,[COD_FISCALE] ,[PROFILO_ASS] ,[DATA_INIZIO_VAL] ,[ID_ELAB] ,[RISKCLASS] ,[EXPERIENCE] ,SCADUTO ) SELECT AN.RETE AS RETE, AN.CODFIS AS COD_FISCALE, AN.CODPROF AS PROFILO_ASS, CASE WHEN AN.DTINVAL = 0 THEN CASE WHEN AN.CODPROF = 0 THEN NULL ELSE GETDATE() END ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO_VAL, @ID_ELAB AS ID_ELAB, CLASSeRC, COD_PROFEC, -- CASE -- WHEN datediff(dd, -- case when isnull(AN.DTINVAL,0) <> 0 -- then CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME) -- else CAST('19900101' as DATETIME) -- END -- , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0 -- ELSE 1 -- END AS SCADUTO CASE WHEN ISNULL(AN.CODPROF,0)>0 THEN 0 ELSE 1 END AS SCADUTO FROM C6StagingPeriodico.WSEIAN2 AS AN --C6StagingPeriodico.ALL_CF_PB AS AL --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN --ON AL.RETE_PB = AN.RETE --AND AL.CODICEFISCALE = AN.CODFIS WHERE AN.DTTRIM = ( SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2 ) AND AN.CODMAN='' UNION SELECT AN.RETE AS RETE, 'FF@' + AN.CODMAN AS COD_FISCALE, --AN.CODFIS AS COD_FISCALE, AN.CODPROF AS PROFILO_ASS, CASE WHEN AN.DTINVAL = 0 THEN CASE WHEN AN.CODPROF = 0 THEN NULL ELSE GETDATE() END ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO_VAL, @ID_ELAB AS ID_ELAB, classErc, COD_PROFEC, -- CASE -- WHEN datediff(dd, -- case when isnull(AN.DTINVAL,0) <> 0 -- then CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME) -- else CAST('19900101' as DATETIME) -- END -- , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0 -- ELSE 1 -- END AS SCADUTO CASE WHEN ISNULL(AN.CODPROF,0)>0 THEN 0 ELSE 1 END AS SCADUTO FROM C6StagingPeriodico.WSEIAN2 AS AN --C6StagingPeriodico.ALL_CF_PB AS AL --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN -- ON AL.RETE_PB = AN.RETE -- AND SUBSTRING(AL.CODICEFISCALE,4,4) = AN.CODMAN WHERE AN.DTTRIM = ( SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2 ) AND AN.CODMAN <> '' --AND AL.CODICEFISCALE LIKE '%@%' -- Log esecuzione UPDATE LOG_ESECUZIONE_PERIODICO_IMMOBILIARE SET Fine = GETDATE(), Tipo = 'INSERT', Righe = @@ROWCOUNT WHERE Nome = 'DM_MIFID' AND Inizio = ( SELECT MAX(Inizio) FROM LOG_ESECUZIONE_PERIODICO_IMMOBILIARE WHERE Nome = 'DM_MIFID' ) END --select count(*) from c6martperiodico.mifid