-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 17 marzo 2009  
-- Description: NOTA BENE: I JOIN NON DOVREBBERO MAI ESSERE FATTI COME SOTTO, TRATTASI DI WORK AROUND  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_CODIFICA_RISCHIO]  
AS  
BEGIN  
 SET NOCOUNT ON;  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CODIFICA_RISCHIO',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.CODIFICA_RISCHIO  
 INSERT INTO C6MartPeriodicoImmobiliare.[CODIFICA_RISCHIO]  
           ([PROFILO]  
           ,[DESCRIZIONE]  
           ,[MIN_VAR]  
           ,[MAX_VAR]  
           ,[ID_ELAB])  
 SELECT   
  SPB_PROF_RISCHIO.CODICEPROFILO AS PROFILO,  
  SPB_PROF_RISCHIO.DESCRIZIONEPROFILO AS DESCRIZIONE,  
  ISNULL(SPB_MIN.VARTRIMESTRALE,-0.01) + 0.01 AS MIN_VAR,  
  SPB_PROF_RISCHIO.VARTRIMESTRALE AS MAX_VAR,  
  @ID_ELAB AS ID_ELAB  
 FROM C6StagingPeriodicoImmobiliare.SPB_PROF_RISCHIO  
 LEFT JOIN C6StagingPeriodicoImmobiliare.SPB_PROF_RISCHIO SPB_MIN   
  ON SPB_MIN.CODICEPROFILO + 1 = SPB_PROF_RISCHIO.CODICEPROFILO  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CODIFICA_RISCHIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_CODIFICA_RISCHIO'  
  )  
END