-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= -- exec [C6MartPeriodico].[PL_S75GradoCopertura_check] 'F','LBRRMN81R48L388B' CREATE procedure [C6MartPeriodico].[PL_S75GradoCopertura_check] -- 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, ---MODIFICA TRINGALI inserisco cc patrBF.CTV AS Controvalore, --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 --and patrBF.CTV > 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 -- 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