-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= -- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D' CREATE procedure [C6MartPeriodico].[PL_S75GradoCopertura] -- 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. DECLARE @varCompl decimal(15,3) DECLARE @coperturaCompl decimal(15,3) DECLARE @ctvCompl decimal(15,3) DECLARE @saldoCC decimal(15,3) --CALCOLO PATRIMONI E ESTRAZIONE VAR SELECT @Rete AS Rete, @CodiceFiscale as CodiceFiscale, CASE @Rete WHEN 'F' THEN 'Patrimonio Fideuram' WHEN 'S' THEN 'Patrimonio San Paolo Invest' ELSE ' Patrimonio IW Private Inv.' END AS NomePatrimonio, -- MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore, -- MAX(patrBF.ContoCorrente) AS ControvaloreCC, -- MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio, -- MAX(RISCHIO.COPERTURA) AS Copertura, patrBF.PatrimonioSenzaCC AS Controvalore, --patrBF.CTV - patrBF.ContoCorrente AS Controvalore, patrBF.ContoCorrente AS ControvaloreCC, RISCHIO.VAR_PERC_PTF AS VarPatrimonio, RISCHIO.COPERTURA AS Copertura, 1 AS ORDINE INTO #TEMP75 FROM C6MartPeriodico.vPatrimoniobfAggregato patrBF LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO ON RISCHIO.RETE = patrBF.RETE AND RISCHIO.COD_FISCALE = patrBF.COD_FISCALE AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF' WHERE patrBF.Rete = @Rete AND patrBF.Cod_Fiscale = @CodiceFiscale UNION ALL SELECT A.Rete, A.CodiceFiscale, A.NomePatrimonio, A.Controvalore, A.ControvaloreCC, A.VarPatrimonio, A.Copertura, A.ORDINE FROM( SELECT @Rete AS Rete, @CodiceFiscale as CodiceFiscale, 'Patrimonio Altri Istituti' AS NomePatrimonio, SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2)) AS Controvalore, SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC, MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio, MAX(RISCHIO.COPERTURA) as Copertura, 2 AS ORDINE FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO ON RISCHIO.RETE = patrTerzi.RETE AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI' WHERE patrTerzi.Rete = @Rete and patrTerzi.COD_FISCALE = @CodiceFiscale ) A WHERE ISNULL(A.CONTROVALORE,0)>0 -- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO IF @@ROWCOUNT > 1 BEGIN --CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR SELECT @ctvCompl=SUM(patr.CONTROVALORE), @saldoCC=SUM(patr.CONTROVALORECC), @varCompl=MAX(RISCHIO.VAR_PERC_PTF), @coperturaCompl=MAX(RISCHIO.COPERTURA) FROM #TEMP75 patr LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO ON RISCHIO.RETE = patr.RETE AND RISCHIO.COD_FISCALE = patr.CodiceFiscale AND RISCHIO.COD_AGGREG = 'COMPLESSIVO' --RESTITUISCO I PATRIMONI SELECT Ordine, Nomepatrimonio, Controvalore, CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END AS CCPresente, (CONTROVALORE/@CTVCompl)*100 AS Percentuale, VARPATRIMONIO AS VAR, Copertura, CASE WHEN COPERTURA IS NULL THEN 'n.c.' WHEN COPERTURA = 0 THEN 'n.c.' ELSE NULL END AS varString, CASE WHEN COPERTURA IS NULL THEN 'n.c.' WHEN COPERTURA = 0 THEN 'n.c.' ELSE NULL END AS coperturaString, -- aggiunta per valutare la presenza di controcorrente CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto -- fine aggiunta per valutare la presenza di controcorrente FROM #TEMP75 WHERE CONTROVALORE IS NOT NULL UNION ALL SELECT 3, 'Patrimonio Complessivo', @CTVCompl, CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE, 100.00 as percentuale, @varCompl, @coperturaCompl, CASE WHEN @coperturaCompl IS NULL THEN 'n.c.' WHEN @coperturaCompl = 0 THEN 'n.c.' ELSE NULL END AS varString, CASE WHEN @coperturaCompl IS NULL THEN 'n.c.' WHEN @coperturaCompl = 0 THEN 'n.c.' ELSE NULL END AS coperturaString, -- aggiunta per valutare la presenza di controcorrente CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto -- fine aggiunta per valutare la presenza di controcorrente ORDER BY 1 END ELSE BEGIN --RESTITUISCO L'UNICO PATRIMONIO PRESENTE SELECT Nomepatrimonio, Controvalore, CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPresente, 100.00 as Percentuale, VARPATRIMONIO AS VAR, Copertura, CASE WHEN COPERTURA IS NULL THEN 'n.c.' WHEN COPERTURA = 0 THEN 'n.c.' ELSE NULL END AS varString, CASE WHEN COPERTURA IS NULL THEN 'n.c.' WHEN COPERTURA = 0 THEN 'n.c.' ELSE NULL END AS coperturaString, -- aggiunta per valutare la presenza di controcorrente CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto -- fine aggiunta per valutare la presenza di controcorrente FROM #TEMP75 WHERE CONTROVALORE IS NOT NULL END END --USE [C6StampeCentralizzate] --GO --/****** Object: StoredProcedure [C6MartPeriodico].[PL_S75GradoCopertura] Script Date: 10/02/2022 16:00:46 ******/ --SET ANSI_NULLS ON --GO --SET QUOTED_IDENTIFIER ON --GO ---- ============================================= ---- Author: ---- Create date: ---- Description: ---- ============================================= ---- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D' --ALTER procedure [C6MartPeriodico].[PL_S75GradoCopertura] -- -- 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. -- DECLARE @varCompl decimal(15,3) -- DECLARE @coperturaCompl decimal(15,3) -- DECLARE @ctvCompl decimal(15,3) -- DECLARE @saldoCC decimal(15,3) -- --CALCOLO PATRIMONI E ESTRAZIONE VAR -- SELECT -- @Rete AS Rete, -- @CodiceFiscale as CodiceFiscale, -- CASE @Rete -- WHEN 'F' THEN 'Patrimonio Fideuram' -- ELSE 'Patrimonio San Paolo Invest' -- END AS NomePatrimonio, ---- MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore, ---- MAX(patrBF.ContoCorrente) AS ControvaloreCC, ---- MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio, ---- MAX(RISCHIO.COPERTURA) AS Copertura, -- patrBF.PatrimonioSenzaCC AS Controvalore, -- --patrBF.CTV - patrBF.ContoCorrente AS Controvalore, -- patrBF.ContoCorrente AS ControvaloreCC, -- RISCHIO.VAR_PERC_PTF AS VarPatrimonio, -- RISCHIO.COPERTURA AS Copertura, -- 1 AS ORDINE INTO #TEMP75 -- FROM -- C6MartPeriodico.vPatrimoniobfAggregato patrBF -- LEFT JOIN -- C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO -- ON -- RISCHIO.RETE = patrBF.RETE -- AND RISCHIO.COD_FISCALE = patrBF.COD_FISCALE -- AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF' -- WHERE -- patrBF.Rete = @Rete -- AND patrBF.Cod_Fiscale = @CodiceFiscale -- UNION ALL -- SELECT -- A.Rete, -- A.CodiceFiscale, -- A.NomePatrimonio, -- A.Controvalore, -- A.ControvaloreCC, -- A.VarPatrimonio, -- A.Copertura, -- A.ORDINE -- FROM( -- SELECT -- @Rete AS Rete, -- @CodiceFiscale as CodiceFiscale, -- 'Patrimonio Altri Istituti' AS NomePatrimonio, -- SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2)) AS Controvalore, -- SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC, -- MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio, -- MAX(RISCHIO.COPERTURA) as Copertura, -- 2 AS ORDINE -- FROM -- C6MartPeriodico.PATRIMONIO_TERZI patrTerzi -- LEFT JOIN -- C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO -- ON -- RISCHIO.RETE = patrTerzi.RETE -- AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE -- AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI' -- WHERE -- patrTerzi.Rete = @Rete -- and patrTerzi.COD_FISCALE = @CodiceFiscale -- ) A -- WHERE ISNULL(A.CONTROVALORE,0)>0 -- -- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO -- IF @@ROWCOUNT > 1 -- BEGIN -- --CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR -- SELECT -- @ctvCompl=SUM(patr.CONTROVALORE), -- @saldoCC=SUM(patr.CONTROVALORECC), -- @varCompl=MAX(RISCHIO.VAR_PERC_PTF), -- @coperturaCompl=MAX(RISCHIO.COPERTURA) -- FROM -- #TEMP75 patr -- LEFT JOIN -- C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO -- ON -- RISCHIO.RETE = patr.RETE -- AND RISCHIO.COD_FISCALE = patr.CodiceFiscale -- AND RISCHIO.COD_AGGREG = 'COMPLESSIVO' -- --RESTITUISCO I PATRIMONI -- SELECT -- Ordine, -- Nomepatrimonio, -- Controvalore, -- CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END AS CCPresente, -- (CONTROVALORE/@CTVCompl)*100 AS Percentuale, -- VARPATRIMONIO AS VAR, -- Copertura, -- CASE -- WHEN COPERTURA IS NULL THEN 'n.c.' -- WHEN COPERTURA = 0 THEN 'n.c.' -- ELSE NULL -- END AS varString, -- CASE -- WHEN COPERTURA IS NULL THEN 'n.c.' -- WHEN COPERTURA = 0 THEN 'n.c.' -- ELSE NULL -- END AS coperturaString, -- -- aggiunta per valutare la presenza di controcorrente -- CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto -- -- fine aggiunta per valutare la presenza di controcorrente -- FROM #TEMP75 -- WHERE CONTROVALORE IS NOT NULL -- UNION ALL -- SELECT -- 3, -- 'Patrimonio Complessivo', -- @CTVCompl, -- CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE, -- 100.00 as percentuale, -- @varCompl, -- @coperturaCompl, -- CASE -- WHEN @coperturaCompl IS NULL THEN 'n.c.' -- WHEN @coperturaCompl = 0 THEN 'n.c.' -- ELSE NULL -- END AS varString, -- CASE -- WHEN @coperturaCompl IS NULL THEN 'n.c.' -- WHEN @coperturaCompl = 0 THEN 'n.c.' -- ELSE NULL -- END AS coperturaString, -- -- aggiunta per valutare la presenza di controcorrente -- CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto -- -- fine aggiunta per valutare la presenza di controcorrente -- ORDER BY 1 -- END -- ELSE -- BEGIN -- --RESTITUISCO L'UNICO PATRIMONIO PRESENTE -- SELECT -- Nomepatrimonio, -- Controvalore, -- CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPresente, -- 100.00 as Percentuale, -- VARPATRIMONIO AS VAR, -- Copertura, -- CASE -- WHEN COPERTURA IS NULL THEN 'n.c.' -- WHEN COPERTURA = 0 THEN 'n.c.' -- ELSE NULL -- END AS varString, -- CASE -- WHEN COPERTURA IS NULL THEN 'n.c.' -- WHEN COPERTURA = 0 THEN 'n.c.' -- ELSE NULL -- END AS coperturaString, -- -- aggiunta per valutare la presenza di controcorrente -- CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto -- -- fine aggiunta per valutare la presenza di controcorrente -- FROM #TEMP75 -- WHERE CONTROVALORE IS NOT NULL -- END --END