-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= --[C6martPeriodico].[PL_MP_S131ContributoARischio] F,BRZGLI88S43F839A CREATE procedure [C6MartPeriodico].[PL_MP_S131ContributoARischio] -- 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 3 ANAGPROD.DESCR_PRODOTTO as descrizioneProdotto, PATRBF.CTV AS controvalore, case when (patrbf.tipo_prodotto ='CC') then 0.00 else RISCHIO_PROD.VAR_PERC_PTF end AS rischioMercato, ( ( 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 --Controvalore prodotto * VaR% prodotto 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 ORDER BY rischioRelativo desc END