-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 24/11/2008
-- Description:	NOTA BENE: I JOIN NON DOVREBBERO MAI ESSERE FATTI COME SOTTO, TRATTASI DI WORK AROUND
-- =============================================
CREATE procedure [C6Mart].[DM_CODIFICA_RISCHIO]
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MART.GETIDELAB()
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CODIFICA_RISCHIO',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	TRUNCATE TABLE C6MART.CODIFICA_RISCHIO
	INSERT INTO [C6Mart].[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 
		C6STAGING.SPB_PROF_RISCHIO
	LEFT JOIN 
		C6STAGING.SPB_PROF_RISCHIO SPB_MIN 
		ON 
			SPB_MIN.CODICEPROFILO + 1 = SPB_PROF_RISCHIO.CODICEPROFILO
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CODIFICA_RISCHIO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CODIFICA_RISCHIO'
		)
END