-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= -- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y' CREATE procedure [C6Mart].[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 Banca Fideuram' WHEN 'S' THEN 'Patrimonio Sanpaolo 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 C6Mart.vPatrimoniobfAggregato patrBF LEFT OUTER JOIN C6Mart.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 --AND patrBF.PatrimonioSenzaCC > 0 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 C6Mart.PATRIMONIO_TERZI patrTerzi LEFT OUTER JOIN C6Mart.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 OUTER JOIN C6Mart.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 COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString, -- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString 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 @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS varString, -- CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString 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 COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString, -- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString 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 [C6Mart].[PL_S75GradoCopertura] Script Date: 08/02/2022 16:57:49 ******/ --SET ANSI_NULLS ON --GO --SET QUOTED_IDENTIFIER ON --GO ---- ============================================= ---- Author: ---- Create date: ---- Description: ---- ============================================= ---- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y' --ALTER procedure [C6Mart].[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 Banca Fideuram' -- ELSE 'Patrimonio Sanpaolo 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 C6Mart.vPatrimoniobfAggregato patrBF -- LEFT OUTER JOIN C6Mart.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 -- --AND patrBF.PatrimonioSenzaCC > 0 -- 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 C6Mart.PATRIMONIO_TERZI patrTerzi -- LEFT OUTER JOIN C6Mart.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 OUTER JOIN C6Mart.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 COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString, ---- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString -- 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 @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS varString, ---- CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString -- 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 COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString, ---- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString -- 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