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