--select * from C6MartPeriodico.CONFRONTO_RISCHIO
CREATE   procedure [C6MartPeriodico].[RP_DM_Confronto_IndicatoreRischio]  
AS 
BEGIN  
DECLARE @PERC_SCARTO AS DECIMAL (5,2)
SET @PERC_SCARTO= 1
TRUNCATE TABLE[C6martPeriodico].[CONFRONTO_RISCHIO]
INSERT INTO [C6martPeriodico].[CONFRONTO_RISCHIO]
SELECT 
	qd.rete as Rete,
	qd.codfis as Codfis,
	qd.piva as Piva,
	qd.codman as Codman,
	qd.chiave_acn as Chiave_acn,
    ABS(qd.isp_total_risk) AS Rischio_Adeguatezza ,
    ra.VAR_PERC_PTF AS Rischio_IL,
    ABS(ABS(qd.isp_total_risk) - ABS(ra.VAR_PERC_PTF)) AS Dif_rischio,
	--ABS(qd.isp_total_risk) * 
	@PERC_SCARTO AS Val_Tol_Scarto,
    CASE 
        WHEN ABS(ABS(qd.isp_total_risk) - ABS(ra.VAR_PERC_PTF)) > --(ABS(qd.isp_total_risk) * 
		@PERC_SCARTO THEN 'KO'
        ELSE 'OK' 
    END AS Confronto_Ind_Rischio,
    trim(qd.flag_risk) AS Flag_Rischio_Adeguatezza,
    CASE 
        WHEN ade.Adeg_Rischio = 'S' THEN 'Y' 
        WHEN ade.Adeg_Rischio = 'N' THEN '' 
        ELSE ade.Adeg_Rischio 
    END AS Flag_Rischio_IL,
    CASE 
        WHEN trim(qd.flag_risk) <> 
        CASE 
            WHEN ade.Adeg_Rischio in ('S','NA') THEN 'Y' 
            WHEN ade.Adeg_Rischio  = 'N' THEN '' 
            ELSE ade.Adeg_Rischio 
        END 
        THEN 'KO' 
        ELSE 'OK'     END AS Confronto_Flag_Ind_Rischio 
		,NULL as Perc_Var_KO
		,NULL as Perc_Ind_Adeg_KO
FROM [C6martPeriodico].[QD_VAR_RISK_WEEK2] qd
LEFT JOIN [C6martPeriodico].RISCHIO_AGGREGATO ra
    ON qd.rete = ra.rete AND qd.chiave_acn = ra.COD_FISCALE
LEFT JOIN [C6MartPeriodico].[W6CKADEG] ade
    ON qd.rete = ade.Rete AND qd.chiave_acn = ade.Chiave_Acn
WHERE ra.COD_AGGREG = 'COMPLESSIVO'
DECLARE @NUM_C_RISCHIO INT
DECLARE @NUM_C_RISCHIO_KO INT
DECLARE @NUM_F_RISCHIO INT 
DECLARE @NUM_F_RISCHIO_KO INT
select @NUM_C_RISCHIO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] 
select @NUM_C_RISCHIO_KO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] where Confronto_Ind_Rischio='KO'
select @NUM_F_RISCHIO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] 
select @NUM_F_RISCHIO_KO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] where Confronto_Flag_Ind_Rischio='KO'
	-- FerAcu 20240913 - Ovviare a problema di divisione per zero quando la tabella è vuota
	if (@NUM_C_RISCHIO != 0 and @NUM_F_RISCHIO != 0)
	begin
		declare @PERC_C_RISCHIO DECIMAL(18,2)
		DECLARE @PERC_F_RISCHIO DECIMAL(18,2)
		--Confronto_Perc_Rischio Perc_Var_KO
		SET @PERC_C_RISCHIO = (CAST(@NUM_C_RISCHIO_KO AS DECIMAL(18,2)) * 100) / CAST(@NUM_C_RISCHIO AS DECIMAL(18,2));
		--Confronto_Ind_Rischio Perc_Ind_Adeg_KO
		SET @PERC_F_RISCHIO = (CAST(@NUM_F_RISCHIO_KO AS DECIMAL(18,2)) * 100) / CAST(@NUM_F_RISCHIO AS DECIMAL(18,2));
		update [C6martPeriodico].[CONFRONTO_RISCHIO]
		set Perc_Var_KO=@PERC_C_RISCHIO
		update [C6martPeriodico].[CONFRONTO_RISCHIO]
		set Perc_Ind_Adeg_KO=@PERC_F_RISCHIO
	end
END