PDC_REPORT_CreazioneDB/sql/Testbes/procedure/C6Mart_PL_MP_FD133BISPrincipaliProdotti.sql
2025-06-10 15:29:40 +02:00

55 lines
2.3 KiB
SQL

-- =============================================
-- Author: <Davide Moccia>
-- Create date: <07/05/2013>
-- Description: <Monitoraggio Private - Capitolo2°-Contributo al Rischio : aree di bisogno-4° sezione >
-- =============================================
-- [c6mart].[PL_MP_S133BISPrincipaliProdotti] F,CLSPLA43D08H501B
CREATE procedure [C6Mart].[PL_MP_FD133BISPrincipaliProdotti]
-- 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 C6Mart.PATRIMONIO_BF PATRBF
INNER JOIN C6Mart.ANAG_PRODOTTI ANAGPROD
ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN c6mart.AREA_BISOGNO AREA
ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA
LEFT JOIN c6mart.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