339 lines
12 KiB
SQL
339 lines
12 KiB
SQL
--select *
|
|
--from c6martperiodico.patrimonio_bf
|
|
--where cod_fiscale = 'GNGFRZ63H17D810C'
|
|
--and id_area = 'Liq'
|
|
--
|
|
--begin tran commit
|
|
--update
|
|
--c6martperiodico.patrimonio_bf
|
|
--set ordinamento_progetto = 527950
|
|
--where cod_fiscale = 'GNGFRZ63H17D810C'
|
|
--and id_area = 'Liq'
|
|
--and ordinamento_progetto is null
|
|
-- Stored procedure
|
|
-- =============================================
|
|
-- Author: Paolo Giovanetti -- Alessandro Tringali
|
|
-- Create date: 15 gennaio 2009 -- 19/09/2009
|
|
-- Description: riporta il valore complessivo dei prodotti attualmente destinati all'area
|
|
-- di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
|
|
-- =============================================
|
|
-- [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass] 'S','GNGFRZ63H17D810C'
|
|
CREATE procedure [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass]
|
|
-- 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
|
|
VALORIASSET.ID_AREA AS Need_Area,
|
|
VALORIASSET.NOME_PROGETTO,
|
|
VALORIASSET.ord_progetto,
|
|
VALORIASSET.ID_ASSETCLASS AS AssetClassId,
|
|
ASSETCLASS.DESCRIZIONE AS AssetClassName,
|
|
--ROUND(VALORIASSET.CONTROVALORE, 2) AS Controvalore,
|
|
CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
|
|
ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_AREA, VALORIASSET.NOME_PROGETTO) * 100, 2) AS Percentuale
|
|
FROM (
|
|
SELECT
|
|
VAL.RETE,
|
|
VAL.COD_FISCALE,
|
|
VAL.ID_AREA,
|
|
VAL.NOME_PROGETTO,
|
|
val.ord_progetto,
|
|
SUM(CONTROVALORE) AS CONTROVALORE,
|
|
ID_ASSETCLASS
|
|
FROM
|
|
(--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
|
|
SELECT
|
|
PATR_BF.RETE,
|
|
PATR_BF.COD_FISCALE,
|
|
CASE
|
|
WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
ELSE PATR_BF.ID_AREA
|
|
END AS ID_AREA,
|
|
ltrim(rtrim(PATR_BF.NOME_PROGETTO)) NOME_PROGETTO ,
|
|
patr_bf.ordinamento_progetto ord_progetto,
|
|
(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
|
|
ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
|
|
FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
|
|
INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
|
|
ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
WHERE
|
|
PATR_BF.ID_AREA NOT IN ('Cc', 'Na','Pre1','Pre2','Pre')
|
|
AND ASSETPERC.LIVELLO = 1
|
|
--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
|
|
AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
|
|
AND PATR_BF.COD_FISCALE=@CodiceFiscale
|
|
AND PATR_BF.RETE= @Rete
|
|
--
|
|
UNION ALL
|
|
---DETTAGLIO ASUL SENZA GLI SKANDIA
|
|
SELECT PATR_BF.RETE,
|
|
PATR_BF.COD_FISCALE,
|
|
CASE
|
|
WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
ELSE PATR_BF.ID_AREA
|
|
END AS ID_AREA,
|
|
PATR_BF.NOME_PROGETTO,
|
|
patr_bf.ordinamento_progetto ord_progetto,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore,
|
|
ASSETPERC.ID_ASSETCLASS
|
|
FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
|
|
INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
|
|
ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
|
|
AND ASUL.COD_ISIN_SOTT = ''
|
|
AND ASSETPERC.LIVELLO = 1
|
|
INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
|
|
ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
|
|
AND ASUL.RETE=PATR_BF.RETE
|
|
AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
|
|
WHERE
|
|
ASUL.RETE = @Rete
|
|
AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
AND PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')
|
|
UNION ALL
|
|
--DETTAGLIO ASUL SKANDIA
|
|
SELECT ASUL.RETE,
|
|
ASUL.COD_FISCALE,
|
|
CASE
|
|
WHEN ASUL.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
ELSE ASUL.ID_AREA
|
|
END AS ID_AREA,
|
|
ASUL.NOME_PROGETTO,
|
|
asul.ordinamento_progetto ord_progetto,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore,
|
|
ASSETPERC.ID_ASSETCLASS
|
|
FROM C6MartPeriodico.PATRIMONIO_BF ASUL
|
|
INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
|
|
ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
|
|
AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
|
|
AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
|
|
AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
|
|
AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
|
|
AND ASSETPERC.LIVELLO = 1
|
|
-- INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
|
|
-- ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
|
|
-- AND ASUL.RETE=PATR_BF.RETE
|
|
-- AND ASUL.ID_CONTRATTO=PATR_BF.ID_CONTRATTO
|
|
WHERE
|
|
ASUL.RETE =@Rete
|
|
AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
|
|
AND ASUL.tipo_Prodotto = 'ASU2'
|
|
AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')
|
|
) val
|
|
where Controvalore >0
|
|
GROUP BY
|
|
VAL.RETE,
|
|
val.COD_FISCALE,
|
|
VAL.ID_AREA,
|
|
VAL.NOME_PROGETTO,
|
|
val.ord_progetto,
|
|
VAL.ID_ASSETCLASS
|
|
UNION ALL
|
|
/* nuovo */
|
|
SELECT
|
|
VAL.RETE,
|
|
VAL.COD_FISCALE,
|
|
VAL.ID_AREA,
|
|
VAL.NOME_PROGETTO,
|
|
MAX(val.ord_progetto),
|
|
SUM(CONTROVALORE) AS CONTROVALORE,
|
|
ID_ASSETCLASS
|
|
FROM
|
|
(--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
|
|
SELECT
|
|
PATR_BF.RETE,
|
|
PATR_BF.COD_FISCALE,
|
|
CASE
|
|
WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
ELSE PATR_BF.ID_AREA
|
|
END AS ID_AREA,
|
|
ltrim(rtrim(PATR_BF.NOME_PROGETTO)) NOME_PROGETTO ,
|
|
patr_bf.ordinamento_progetto ord_progetto,
|
|
(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
|
|
ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
|
|
FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
|
|
INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
|
|
ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
WHERE
|
|
PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')
|
|
AND ASSETPERC.LIVELLO = 1
|
|
--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
|
|
AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
|
|
AND PATR_BF.COD_FISCALE=@CodiceFiscale
|
|
AND PATR_BF.RETE= @Rete
|
|
--
|
|
UNION ALL
|
|
---DETTAGLIO ASUL SENZA GLI SKANDIA
|
|
SELECT PATR_BF.RETE,
|
|
PATR_BF.COD_FISCALE,
|
|
CASE
|
|
WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
ELSE PATR_BF.ID_AREA
|
|
END AS ID_AREA,
|
|
PATR_BF.NOME_PROGETTO,
|
|
patr_bf.ordinamento_progetto ord_progetto,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore,
|
|
ASSETPERC.ID_ASSETCLASS
|
|
FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
|
|
INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
|
|
ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
|
|
AND ASUL.COD_ISIN_SOTT = ''
|
|
AND ASSETPERC.LIVELLO = 1
|
|
INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
|
|
ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
|
|
AND ASUL.RETE=PATR_BF.RETE
|
|
AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
|
|
WHERE
|
|
ASUL.RETE = @Rete
|
|
AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
AND PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')
|
|
UNION ALL
|
|
--DETTAGLIO ASUL SKANDIA
|
|
SELECT ASUL.RETE,
|
|
ASUL.COD_FISCALE,
|
|
CASE
|
|
WHEN ASUL.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
ELSE ASUL.ID_AREA
|
|
END AS ID_AREA,
|
|
ASUL.NOME_PROGETTO,
|
|
asul.ordinamento_progetto ord_progetto,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore,
|
|
ASSETPERC.ID_ASSETCLASS
|
|
FROM C6MartPeriodico.PATRIMONIO_BF ASUL
|
|
INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
|
|
ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
|
|
AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
|
|
AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
|
|
AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
|
|
AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
|
|
AND ASSETPERC.LIVELLO = 1
|
|
-- INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
|
|
-- ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
|
|
-- AND ASUL.RETE=PATR_BF.RETE
|
|
-- AND ASUL.ID_CONTRATTO=PATR_BF.ID_CONTRATTO
|
|
WHERE
|
|
ASUL.RETE =@Rete
|
|
AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
|
|
AND ASUL.tipo_Prodotto = 'ASU2'
|
|
AND ASUL.ID_AREA IN ('Pre1','Pre2','Pre')
|
|
) val
|
|
where Controvalore >0
|
|
GROUP BY
|
|
VAL.RETE,
|
|
val.COD_FISCALE,
|
|
VAL.ID_AREA,
|
|
VAL.NOME_PROGETTO,
|
|
VAL.ID_ASSETCLASS
|
|
/**/
|
|
)
|
|
VALORIASSET
|
|
INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
|
|
ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
|
|
WHERE
|
|
VALORIASSET.RETE =@Rete
|
|
AND VALORIASSET.COD_FISCALE = @CodiceFiscale
|
|
ORDER BY
|
|
ASSETCLASS.ORDINAMENTO
|
|
--
|
|
-- SELECT
|
|
-- VALORIASSET.ID_AREA AS Need_Area,
|
|
-- VALORIASSET.NOME_PROGETTO,
|
|
-- VALORIASSET.ID_ASSETCLASS AS AssetClassId,
|
|
-- ASSETCLASS.DESCRIZIONE AS AssetClassName,
|
|
-- --ROUND(VALORIASSET.CONTROVALORE, 2) AS Controvalore,
|
|
-- CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
|
|
-- ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_AREA, VALORIASSET.NOME_PROGETTO) * 100, 2) AS Percentuale
|
|
-- FROM (
|
|
-- SELECT
|
|
-- PATR_BF.RETE,
|
|
-- PATR_BF.COD_FISCALE,
|
|
-- CASE
|
|
-- WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
|
|
-- ELSE PATR_BF.ID_AREA
|
|
-- END AS ID_AREA,
|
|
-- PATR_BF.NOME_PROGETTO,
|
|
-- SUM(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
|
|
-- ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
|
|
-- FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
|
|
-- INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
|
|
-- ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
-- WHERE
|
|
-- PATR_BF.ID_AREA NOT IN ('Cc', 'Na')
|
|
-- AND ASSETPERC.LIVELLO = 1
|
|
-- GROUP BY
|
|
-- PATR_BF.RETE,
|
|
-- PATR_BF.COD_FISCALE,
|
|
-- PATR_BF.ID_AREA,
|
|
-- PATR_BF.NOME_PROGETTO,
|
|
-- ASSETPERC.ID_ASSETCLASS
|
|
-- ) VALORIASSET
|
|
-- INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
|
|
-- ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
|
|
-- WHERE
|
|
-- VALORIASSET.RETE = @Rete
|
|
-- AND VALORIASSET.COD_FISCALE = @CodiceFiscale
|
|
-- ORDER BY
|
|
-- ASSETCLASS.ORDINAMENTO
|
|
/*SELECT
|
|
ID_AREA AS NEED_AREA,
|
|
NOME_PROGETTO,
|
|
VALORIASSET.ID_ASSETCLASS AS AssetClassId,
|
|
ASSETCLASS.DESCRIZIONE AS AssetClassName,
|
|
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, ID_AREA, NOME_PROGETTO) AS Controvalore,
|
|
/*(
|
|
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, ID_AREA, NOME_PROGETTO) /
|
|
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
|
|
) * 100 AS Percentuale,*/
|
|
VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY ID_AREA, NOME_PROGETTO) * 100 AS Percentuale,
|
|
--SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') AS PatrimonioFinanziarioCTV,
|
|
ASSETCLASS.ORDINAMENTO AS Ordinamento
|
|
FROM (
|
|
--PRODOTTI TERZI A CATALOGO
|
|
SELECT
|
|
LEFT(PATRBF.ID_AREA,3) AS ID_AREA,
|
|
PATRBF.NOME_PROGETTO,
|
|
ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
|
|
PATRBF.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
|
|
FROM
|
|
--C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
|
|
C6MartPeriodico.PATRIMONIO_BF PATRBF
|
|
LEFT JOIN
|
|
C6MartPeriodico.ASSET_PERC ASSETPERC
|
|
ON
|
|
PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
AND ASSETPERC.LIVELLO = 1
|
|
WHERE 1 = 1
|
|
--AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
|
|
AND PATRBF.RETE = @Rete
|
|
AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
AND PATRBF.ID_AREA NOT IN ('Cc', 'Na')
|
|
/*UNION ALL
|
|
--PRODOTTI TERZI NON A CATALOGO
|
|
SELECT
|
|
ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
|
|
PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
|
|
FROM
|
|
C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
|
|
LEFT JOIN
|
|
C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC
|
|
ON
|
|
PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
|
|
AND ASSETPERC.LIVELLO = 1
|
|
WHERE 1 = 1
|
|
AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
|
|
AND PATRTERZI.RETE = @Rete
|
|
AND PATRTERZI.COD_FISCALE = @CodiceFiscale*/
|
|
) VALORIASSET
|
|
INNER JOIN
|
|
C6MartPeriodico.ASSETCLASS ASSETCLASS
|
|
ON
|
|
ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
|
|
ORDER BY
|
|
ASSETCLASS.ORDINAMENTO*/
|
|
END |