-- Schema: C6Mart -- Stored Procedure: PL_S75GradoCopertura -- ============================================= -- 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 No