﻿-- =============================================
-- Author:		<Davide Moccia>
-- Create date: <07/05/2013>
-- Description:	<Monitoraggio Private - Capitolo2°-Contributo al Rischio :   aree di bisogno-4° sezione >
-- =============================================
--     [C6martPeriodico].[PL_MP_S133BISPrincipaliProdotti] F,CLSPLA43D08H501B
CREATE procedure [C6MartPeriodico].[PL_MP_S133BISPrincipaliProdotti]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
SELECT TOP 10 
		ANAGPROD.DESCR_PRODOTTO AS descrProdotto
		,PATRBF.CTV AS Controvalore
		,CASE 
			WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
			ELSE RISCHIO_PROD.VAR_PERC_PTF
		END AS VaRprodotto
		,((CASE 
			  WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
			  ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
		   END) /	(CASE
					   WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale') = 0 THEN 1
					   ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale')
					 END))*100 as rischioRelativo	
		,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale')))*100  AS pesoRelativo
		,PATRBF.ID_AREA  AS codAreaBisogno
	FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
		ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
	INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
		ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
		ON PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		AND RISCHIO_PROD.COD_AGGREG = CASE 
										 WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
											 THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
											 '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
										 WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
										 ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
									   END
									   + PATRBF.POSITION_ID 
	WHERE PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
	AND PATRBF.ID_AREA <> 'Cc'
	ORDER BY rischioRelativo DESC
END