70 lines
2.4 KiB
SQL
70 lines
2.4 KiB
SQL
-- Schema: C6MartPeriodico
|
|
-- Stored Procedure: PL_MP_FD133BISPrincipaliProdotti
|
|
|
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
-- 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_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
|
|
ANAGPROD.DESCR_PRODOTTO AS descrProdotto
|
|
,PATRBF.CTV AS Controvalore
|
|
,CASE
|
|
WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00
|
|
ELSE isnull(RISCHIO_PROD.VAR_PERC_PTF,0.00)
|
|
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
|
|
|
|
|