274 lines
8.7 KiB
SQL
274 lines
8.7 KiB
SQL
-- =============================================
|
|
-- Author: Luca De Lisio
|
|
-- Create date:
|
|
-- Description:
|
|
-- =============================================
|
|
--[C6Mart].[PL_S2PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
|
|
CREATE procedure [C6Mart].[PL_S2PatrimonioFinanziario]
|
|
-- 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.
|
|
SELECT
|
|
A.BANCA,
|
|
A.ORDINAMENTO,
|
|
A.AssetClassId,
|
|
A.AssetClassName,
|
|
cast(A.Controvalore as decimal(19,6)) Controvalore,
|
|
A.Percentuale,
|
|
cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
CASE @Rete
|
|
WHEN 'S' THEN 'Sanpaolo Invest'
|
|
WHEN 'F' THEN 'Banca Fideuram'
|
|
ELSE 'IW Private Investments'
|
|
END AS Banca,
|
|
ASSETCLASS.ORDINAMENTO AS Ordinamento,
|
|
VALORIASSET.ID_ASSETCLASS AS AssetClassId,
|
|
ASSETCLASS.DESCRIZIONE AS AssetClassName,
|
|
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
|
|
(
|
|
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
|
|
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
|
|
) * 100 AS Percentuale
|
|
FROM (
|
|
--PRODOTTI BF ESCLUSI GLI ASUL
|
|
SELECT
|
|
ASSETPERC.ID_ASSETCLASS,
|
|
PATRBF.CTV*ASSETPERC.PERC as Controvalore
|
|
FROM C6MART.PATRIMONIO_BF PATRBF
|
|
INNER JOIN C6MART.ASSET_PERC ASSETPERC
|
|
ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
AND ASSETPERC.LIVELLO = 1
|
|
WHERE
|
|
--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
|
|
(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
|
|
and patrbf.id_area <> 'CC'
|
|
AND PATRBF.RETE = @Rete
|
|
AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
UNION ALL
|
|
-- -- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
|
|
-- SELECT
|
|
-- ASSETPERC.ID_ASSETCLASS,
|
|
-- PATRBF.CTV*ASSETPERC.PERC as Controvalore
|
|
-- FROM
|
|
-- C6MART.PATRIMONIO_BF PATRBF
|
|
-- INNER JOIN
|
|
-- C6MART.ASSET_PERC ASSETPERC
|
|
-- ON
|
|
-- PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
|
|
-- AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO
|
|
-- AND ASSETPERC.LIVELLO = 1
|
|
--
|
|
-- --V per i cc negativi vado sull'area della patrimonio bf essendo i pos in liq
|
|
-- --LEFT JOIN
|
|
-- -- C6Mart.ClientiConCCNegativo CCNegativo
|
|
-- -- ON
|
|
-- -- PATRBF.RETE = CCNegativo.Rete
|
|
-- -- AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
|
|
-- WHERE
|
|
-- --ELIMINO I CC CON SALDO NEGATIVO
|
|
-- --PATRBF.TIPO_PRODOTTO = 'CC'
|
|
-- PATRBF.ID_AREA <> 'CC'
|
|
-- AND PATRBF.RETE = @Rete
|
|
-- AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
-- --AND CCNegativo.Cod_Fiscale IS NULL
|
|
-- UNION ALL
|
|
--DETTAGLIO ASUL
|
|
SELECT
|
|
ASSETPERC.ID_ASSETCLASS,
|
|
ASUL.CTV*ASSETPERC.PERC as Controvalore
|
|
FROM
|
|
C6MART.DETTAGLIO_ASUL ASUL
|
|
INNER JOIN
|
|
C6MART.ASSET_PERC ASSETPERC
|
|
ON
|
|
ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
|
|
AND ASSETPERC.LIVELLO = 1
|
|
WHERE ASUL.RETE = @Rete
|
|
AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
UNION ALL
|
|
--PRODOTTI TERZI A CATALOGO
|
|
SELECT
|
|
ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
|
|
PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
|
|
FROM
|
|
C6MART.PATRIMONIO_TERZI PATRTERZI
|
|
LEFT JOIN
|
|
C6MART.ASSET_PERC ASSETPERC
|
|
ON
|
|
PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
AND ASSETPERC.LIVELLO = 1
|
|
WHERE 1 = 1
|
|
AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
|
|
AND PATRTERZI.RETE = @Rete
|
|
AND PATRTERZI.COD_FISCALE = @CodiceFiscale
|
|
UNION ALL
|
|
--PRODOTTI TERZI NON A CATALOGO
|
|
SELECT
|
|
ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
|
|
PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
|
|
FROM
|
|
C6MART.PATRIMONIO_TERZI PATRTERZI
|
|
LEFT JOIN
|
|
C6MART.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
|
|
C6Mart.ASSETCLASS ASSETCLASS
|
|
ON
|
|
ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
|
|
) A
|
|
ORDER BY A.ORDINAMENTO
|
|
END
|
|
--USE [C6StampeCentralizzate]
|
|
--GO
|
|
--/****** Object: StoredProcedure [C6Mart].[PL_S2PatrimonioFinanziario] Script Date: 08/02/2022 16:53:30 ******/
|
|
--SET ANSI_NULLS ON
|
|
--GO
|
|
--SET QUOTED_IDENTIFIER ON
|
|
--GO
|
|
---- =============================================
|
|
---- Author: Luca De Lisio
|
|
---- Create date:
|
|
---- Description:
|
|
---- =============================================
|
|
----[C6Mart].[PL_S2PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
|
|
--ALTER procedure [C6Mart].[PL_S2PatrimonioFinanziario]
|
|
-- -- 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.
|
|
--SELECT
|
|
-- A.BANCA,
|
|
-- A.ORDINAMENTO,
|
|
-- A.AssetClassId,
|
|
-- A.AssetClassName,
|
|
-- cast(A.Controvalore as decimal(19,6)) Controvalore,
|
|
-- A.Percentuale,
|
|
-- cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
|
|
--FROM
|
|
--(
|
|
-- SELECT DISTINCT
|
|
-- CASE @Rete
|
|
-- WHEN 'S' THEN 'Sanpaolo Invest'
|
|
-- ELSE 'Banca Fideuram'
|
|
-- END AS Banca,
|
|
-- ASSETCLASS.ORDINAMENTO AS Ordinamento,
|
|
-- VALORIASSET.ID_ASSETCLASS AS AssetClassId,
|
|
-- ASSETCLASS.DESCRIZIONE AS AssetClassName,
|
|
-- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
|
|
-- (
|
|
-- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
|
|
-- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
|
|
-- ) * 100 AS Percentuale
|
|
-- FROM (
|
|
-- --PRODOTTI BF ESCLUSI GLI ASUL
|
|
-- SELECT
|
|
-- ASSETPERC.ID_ASSETCLASS,
|
|
-- PATRBF.CTV*ASSETPERC.PERC as Controvalore
|
|
-- FROM C6MART.PATRIMONIO_BF PATRBF
|
|
-- INNER JOIN C6MART.ASSET_PERC ASSETPERC
|
|
-- ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
-- AND ASSETPERC.LIVELLO = 1
|
|
-- WHERE
|
|
-- --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
|
|
-- (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
|
|
-- and patrbf.id_area <> 'CC'
|
|
-- AND PATRBF.RETE = @Rete
|
|
-- AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
-- UNION ALL
|
|
---- -- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
|
|
---- SELECT
|
|
---- ASSETPERC.ID_ASSETCLASS,
|
|
---- PATRBF.CTV*ASSETPERC.PERC as Controvalore
|
|
---- FROM
|
|
---- C6MART.PATRIMONIO_BF PATRBF
|
|
---- INNER JOIN
|
|
---- C6MART.ASSET_PERC ASSETPERC
|
|
---- ON
|
|
---- PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
|
|
---- AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO
|
|
---- AND ASSETPERC.LIVELLO = 1
|
|
----
|
|
---- --V per i cc negativi vado sull'area della patrimonio bf essendo i pos in liq
|
|
---- --LEFT JOIN
|
|
---- -- C6Mart.ClientiConCCNegativo CCNegativo
|
|
---- -- ON
|
|
---- -- PATRBF.RETE = CCNegativo.Rete
|
|
---- -- AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
|
|
---- WHERE
|
|
---- --ELIMINO I CC CON SALDO NEGATIVO
|
|
---- --PATRBF.TIPO_PRODOTTO = 'CC'
|
|
---- PATRBF.ID_AREA <> 'CC'
|
|
---- AND PATRBF.RETE = @Rete
|
|
---- AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
---- --AND CCNegativo.Cod_Fiscale IS NULL
|
|
---- UNION ALL
|
|
-- --DETTAGLIO ASUL
|
|
-- SELECT
|
|
-- ASSETPERC.ID_ASSETCLASS,
|
|
-- ASUL.CTV*ASSETPERC.PERC as Controvalore
|
|
-- FROM
|
|
-- C6MART.DETTAGLIO_ASUL ASUL
|
|
-- INNER JOIN
|
|
-- C6MART.ASSET_PERC ASSETPERC
|
|
-- ON
|
|
-- ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
|
|
-- AND ASSETPERC.LIVELLO = 1
|
|
-- WHERE ASUL.RETE = @Rete
|
|
-- AND ASUL.COD_FISCALE = @CodiceFiscale
|
|
-- UNION ALL
|
|
-- --PRODOTTI TERZI A CATALOGO
|
|
-- SELECT
|
|
-- ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
|
|
-- PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
|
|
-- FROM
|
|
-- C6MART.PATRIMONIO_TERZI PATRTERZI
|
|
-- LEFT JOIN
|
|
-- C6MART.ASSET_PERC ASSETPERC
|
|
-- ON
|
|
-- PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
|
|
-- AND ASSETPERC.LIVELLO = 1
|
|
-- WHERE 1 = 1
|
|
-- AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
|
|
-- AND PATRTERZI.RETE = @Rete
|
|
-- AND PATRTERZI.COD_FISCALE = @CodiceFiscale
|
|
-- UNION ALL
|
|
-- --PRODOTTI TERZI NON A CATALOGO
|
|
-- SELECT
|
|
-- ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
|
|
-- PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
|
|
-- FROM
|
|
-- C6MART.PATRIMONIO_TERZI PATRTERZI
|
|
-- LEFT JOIN
|
|
-- C6MART.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
|
|
-- C6Mart.ASSETCLASS ASSETCLASS
|
|
-- ON
|
|
-- ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
|
|
--) A
|
|
--ORDER BY A.ORDINAMENTO
|
|
--END |