PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_Popola_S10PatrimonioFinanziario.sql
2025-06-09 17:09:11 +02:00

224 lines
8.0 KiB
SQL

-- =============================================
-- Author: <>
-- Create date: <>
-- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>
-- =============================================
-- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'
CREATE procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]
-- Add the parameters for the stored procedure here
--@Rete char(1),
--@CodiceFiscale varchar(16)
AS
BEGIN
truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario
INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario
SELECT --top 1
Rete,
cod_fiscale as CodiceFiscale,
A.BANCA AS Banca,
A.ORDINAMENTO AS Ordinamento,
A.AssetClassId AS AssetClassId,
A.AssetClassName AS AssetClassName,
A.Controvalore,
A.percentuale,
ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)
--cast(A.Controvalore as decimal(19,5)) AS Controvalore,
--cast(A.Percentuale as decimal(19,5)) AS Percentuale,
--cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,5)) AS Totale
FROM
(
SELECT DISTINCT
CASE Rete
WHEN 'S' THEN 'Sanpaolo Invest'
WHEN 'F' THEN 'Fideuram'
ELSE 'IW Private Investments'
END AS Banca,
rete,
cod_fiscale,
ASSETCLASS.ORDINAMENTO,
VALORIASSET.ID_ASSETCLASS AS AssetClassId,
ASSETCLASS.DESCRIZIONE AS AssetClassName,
ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,
(
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /
--16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0
THEN 1
ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )
END
) * 100 AS Percentuale
FROM (
SELECT
PATRBF.rete,
PATRBF.COD_FISCALE,
ASSETPERC.ID_ASSETCLASS,
PATRBF.CTV*ASSETPERC.PERC as Controvalore
FROM
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN
C6MartPeriodico.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 not in ('CC', 'SELF')
-- AND PATRBF.RETE = @Rete
-- AND PATRBF.COD_FISCALE = @CodiceFiscale
UNION ALL
SELECT
Asul.rete,
asul.cod_fiscale,
ASSETPERC.ID_ASSETCLASS,
ASUL.CTV*ASSETPERC.PERC as Controvalore
FROM
C6MartPeriodico.DETTAGLIO_ASUL ASUL
INNER JOIN
C6MartPeriodico.ASSET_PERC ASSETPERC
ON
ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
---ELIMINO GLI SKANDIA
AND ASUL.COD_ISIN_SOTT = ''
AND ASSETPERC.LIVELLO = 1
-- WHERE
-- ASUL.RETE = @Rete
-- AND ASUL.COD_FISCALE = @CodiceFiscale
UNION ALL
SELECT Asul.rete,
asul.cod_fiscale,
ASSETPERC.ID_ASSETCLASS,
ASUL.CTV*ASSETPERC.PERC as Controvalore
FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--PRENDO SOLO GLI SKANDIA
ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
AND ASSETPERC.LIVELLO = 1
-- WHERE
-- ASUL.RETE = @Rete
-- AND ASUL.COD_FISCALE = @CodiceFiscale
) VALORIASSET
INNER JOIN
C6MartPeriodico.ASSETCLASS ASSETCLASS
ON
ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
END
--USE [C6StampeCentralizzate]
--GO
--/****** Object: StoredProcedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] Script Date: 10/02/2022 16:40:28 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author: <>
---- Create date: <>
---- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>
---- =============================================
---- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'
--ALTER procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]
-- -- Add the parameters for the stored procedure here
-- --@Rete char(1),
-- --@CodiceFiscale varchar(16)
--AS
--BEGIN
--truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario
--INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario
--SELECT --top 1
-- Rete,
-- cod_fiscale as CodiceFiscale,
-- A.BANCA AS Banca,
-- A.ORDINAMENTO AS Ordinamento,
-- A.AssetClassId AS AssetClassId,
-- A.AssetClassName AS AssetClassName,
-- A.Controvalore,
-- A.percentuale,
-- ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)
-- --cast(A.Controvalore as decimal(19,5)) AS Controvalore,
-- --cast(A.Percentuale as decimal(19,5)) AS Percentuale,
-- --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,5)) AS Totale
--FROM
--(
-- SELECT DISTINCT
-- CASE Rete
-- WHEN 'S' THEN 'Sanpaolo Invest'
-- ELSE 'Fideuram'
-- END AS Banca,
-- rete,
-- cod_fiscale,
-- ASSETCLASS.ORDINAMENTO,
-- VALORIASSET.ID_ASSETCLASS AS AssetClassId,
-- ASSETCLASS.DESCRIZIONE AS AssetClassName,
-- ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,
-- (
-- SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /
-- --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
-- CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0
-- THEN 1
-- ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )
-- END
-- ) * 100 AS Percentuale
-- FROM (
-- SELECT
-- PATRBF.rete,
-- PATRBF.COD_FISCALE,
-- ASSETPERC.ID_ASSETCLASS,
-- PATRBF.CTV*ASSETPERC.PERC as Controvalore
-- FROM
-- C6MartPeriodico.PATRIMONIO_BF PATRBF
-- INNER JOIN
-- C6MartPeriodico.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 not in ('CC', 'SELF')
-- -- AND PATRBF.RETE = @Rete
-- -- AND PATRBF.COD_FISCALE = @CodiceFiscale
-- UNION ALL
-- SELECT
-- Asul.rete,
-- asul.cod_fiscale,
-- ASSETPERC.ID_ASSETCLASS,
-- ASUL.CTV*ASSETPERC.PERC as Controvalore
-- FROM
-- C6MartPeriodico.DETTAGLIO_ASUL ASUL
-- INNER JOIN
-- C6MartPeriodico.ASSET_PERC ASSETPERC
-- ON
-- ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
-- ---ELIMINO GLI SKANDIA
-- AND ASUL.COD_ISIN_SOTT = ''
-- AND ASSETPERC.LIVELLO = 1
-- -- WHERE
-- -- ASUL.RETE = @Rete
-- -- AND ASUL.COD_FISCALE = @CodiceFiscale
-- UNION ALL
-- SELECT Asul.rete,
-- asul.cod_fiscale,
-- ASSETPERC.ID_ASSETCLASS,
-- ASUL.CTV*ASSETPERC.PERC as Controvalore
-- FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
-- INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
-- --PRENDO SOLO GLI SKANDIA
-- ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
-- AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
-- AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
-- AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
-- AND ASSETPERC.LIVELLO = 1
-- -- WHERE
-- -- ASUL.RETE = @Rete
-- -- AND ASUL.COD_FISCALE = @CodiceFiscale
-- ) VALORIASSET
-- INNER JOIN
-- C6MartPeriodico.ASSETCLASS ASSETCLASS
-- ON
-- ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--) A
--END