PDC_REPORT_CreazioneDB/sql/storedProduzione/C6MartPeriodico_PL_MP_S131ContributoARischio.sql
2025-06-06 19:02:52 +02:00

70 lines
2.1 KiB
SQL

-- =============================================
-- Author: <Davide Moccia>
-- Create date: <Create Date,,>
-- Description: <Monitoraggio Private - Capitolo1°-Sintesi-4° sezione >
-- =============================================
--[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