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

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