PDC_REPORT_CreazioneDB/sql/Collaudo/procedure/C6Mart_PL_D_S153PatrimonioFinanziario.sql
2025-06-10 15:29:00 +02:00

147 lines
4.1 KiB
Transact-SQL

-- Stored procedure
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S153PatrimonioFinanziario]
-- 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
DECLARE @NOMERETE VARCHAR(30)
--IF @Rete = 'F'
--SET @NOMERETE = 'Banca Fideuram'
--ELSE
--SET @NOMERETE = 'Sanpaolo Invest'
IF @Rete = 'F'
SET @NOMERETE = 'Banca Fideuram'
ELSE IF @Rete = 'S'
SET @NOMERETE = 'Sanpaolo Invest'
ELSE
SET @NOMERETE = 'IW Private Investments'
SELECT
Intermediario,
Ordine,
Banca,
Controvalore,
round(Percentuale,2) as Percentuale
FROM
(
SELECT DISTINCT
Intermediario,
Ordine,
@NOMERETE AS Banca,
-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
(
(SUM(ctv) over (partition by Intermediario,Ordine)) /
(SUM(ctv) over (partition by 'Totale'))
) * 100 AS PERCENTUALE
FROM
(
SELECT
@NOMERETE AS Intermediario,
SUM(ROUND(CTV,2)) AS ctv,
1 AS ordine
FROM C6MART.PATRIMONIO_BF patrBF
-- LEFT JOIN C6MART.ClientiConCCNegativo CCNegativo
-- ON PATRBF.RETE = CCNegativo.Rete
-- AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
-- AND PATRBF.TIPO_PRODOTTO = 'CC'
WHERE 1 = 1
AND patrBF.Rete = @Rete
AND patrBF.Cod_Fiscale = @CodiceFiscale
--AND CCNegativo.Cod_Fiscale IS NULL -- ELIMINO I CC CON SALDO NEGATIVO
and patrBF.id_area <> 'cc'
UNION ALL
SELECT
Intermediario,
SUM(ROUND(CTV,2)) AS ctv,
2 AS ordine
FROM C6MART.PATRIMONIO_TERZI patrTerzi
WHERE 1 = 1
AND patrTerzi.Rete = @Rete
AND patrTerzi.Cod_Fiscale = @CodiceFiscale
GROUP BY patrTerzi.Intermediario
) PATR
) A
WHERE CONTROVALORE IS NOT NULL
ORDER BY Ordine
END
--USE [C6StampeCentralizzate]
--GO
--/****** Object: StoredProcedure [C6Mart].[PL_D_S153PatrimonioFinanziario] Script Date: 08/02/2022 17:19:22 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- Stored procedure
---- =============================================
---- Author: <Author,,Name>
---- Create date: <Create Date,,>
---- Description: <Description,,>
---- =============================================
--ALTER procedure [C6Mart].[PL_D_S153PatrimonioFinanziario]
-- -- 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
-- DECLARE @NOMERETE VARCHAR(20)
-- IF @Rete = 'F'
-- SET @NOMERETE = 'Banca Fideuram'
-- ELSE
-- SET @NOMERETE = 'Sanpaolo Invest'
-- SELECT
-- Intermediario,
-- Ordine,
-- Banca,
-- Controvalore,
-- round(Percentuale,2) as Percentuale
-- FROM
-- (
-- SELECT DISTINCT
-- Intermediario,
-- Ordine,
-- @NOMERETE AS Banca,
-- -- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
-- SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
-- (
-- (SUM(ctv) over (partition by Intermediario,Ordine)) /
-- (SUM(ctv) over (partition by 'Totale'))
-- ) * 100 AS PERCENTUALE
-- FROM
-- (
-- SELECT
-- @NOMERETE AS Intermediario,
-- SUM(ROUND(CTV,2)) AS ctv,
-- 1 AS ordine
-- FROM C6MART.PATRIMONIO_BF patrBF
---- LEFT JOIN C6MART.ClientiConCCNegativo CCNegativo
---- ON PATRBF.RETE = CCNegativo.Rete
---- AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
---- AND PATRBF.TIPO_PRODOTTO = 'CC'
-- WHERE 1 = 1
-- AND patrBF.Rete = @Rete
-- AND patrBF.Cod_Fiscale = @CodiceFiscale
-- --AND CCNegativo.Cod_Fiscale IS NULL -- ELIMINO I CC CON SALDO NEGATIVO
-- and patrBF.id_area <> 'cc'
-- UNION ALL
-- SELECT
-- Intermediario,
-- SUM(ROUND(CTV,2)) AS ctv,
-- 2 AS ordine
-- FROM C6MART.PATRIMONIO_TERZI patrTerzi
-- WHERE 1 = 1
-- AND patrTerzi.Rete = @Rete
-- AND patrTerzi.Cod_Fiscale = @CodiceFiscale
-- GROUP BY patrTerzi.Intermediario
-- ) PATR
-- ) A
-- WHERE CONTROVALORE IS NOT NULL
-- ORDER BY Ordine
--END