PDC_REPORT_CreazioneDB/sql/storedCollaudo/dbo_TEST_MERGED_PROCEDURE.sql
2025-06-06 19:02:52 +02:00

122 lines
3.9 KiB
Transact-SQL

-- Schema: dbo
-- Stored Procedure: TEST_MERGED_PROCEDURE
CREATE procedure [dbo].[TEST_MERGED_PROCEDURE]
@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;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
----------------------------------------------- C6MartPeriodico.PL_S43LineaSelfBF
SELECT '' as 'C6MartPeriodico.PL_S43LineaSelfBF', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
codconf as NumContratto,
isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli
NomeProdotto as NomeProdotto,
--FINE Intervento Eligo Titoli
dbo.ToShortDateString(cast(datasott as varchar)) as DataSott
FROM
C6MartPeriodico.ANAG_SELF LS
WHERE
LS.rete= @Rete
AND LS.codfis= @CodiceFiscale
AND isnull(ctv,0) < 0
--------------------------------------------------------------------
----------------------------------------------- C6MartPeriodico.PL_D_S333Fonditalia80
Select
'' as 'C6MartPeriodico.PL_D_S333Fonditalia80', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale
,[DES_PROD]
,[COD_CONF]
,[QUOTA]
,[NUMEROQUOTE]
,[CONTROVALORE]
,[DATARIF]
,[DES_MAX]
,[QUOTA_MAX]
,[QUOTA_MAX_PERC]
,[DATARIF_MAX]
,[DES_PROT]
,[QUOTA_PROT]
,[NUMEROQUOTE_PROT]
,[CONTROVALORE_PROT]
from [C6martperiodico].[capprot]
WHERE [Rete] = @Rete
AND [Codfis] = @CodiceFiscale
--------------------------------------------------------------------
----------------------------------------------- C6MartPeriodico.PL_S10PatrimonioFinanziario
SELECT '' as 'C6MartPeriodico.PL_S10PatrimonioFinanziario' , @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
A.BANCA,
A.ORDINAMENTO,
A.AssetClassId,
A.AssetClassName,
cast(A.Controvalore as decimal(19,5)) Controvalore,
cast(A.Percentuale as decimal(19,5)) 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 'Banca Fideuram'
END AS Banca,
ASSETCLASS.ORDINAMENTO,
VALORIASSET.ID_ASSETCLASS AS AssetClassId,
ASSETCLASS.DESCRIZIONE AS AssetClassName,
ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
(
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
) * 100 AS Percentuale
FROM (
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
---- LEFT OUTER 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
SELECT ASSETPERC.ID_ASSETCLASS,
ASUL.CTV*ASSETPERC.PERC as Controvalore
FROM C6MART.DETTAGLIO_ASUL ASUL
INNER JOIN C6MART.ASSET_PERC ASSETPERC
ON ASS