-- Schema: C6Mart -- Stored Procedure: PL_D_S178CasiParticolari -- [C6Mart].[PL_D_S178CasiParticolari] 'F','MTTSRA00H61D704A' CREATE procedure [C6Mart].[PL_D_S178CasiParticolari] -- Add the parameters for the stored procedure here @Rete char(1), @CodiceFiscale varchar(16) AS BEGIN declare @Copertura decimal(10,2) declare @SoloProdottiSenzaAdeguatezza int declare @SoloCC int declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int declare @IDTesto int set @IDTesto = 0 ------------------------------------------------------------------------------ CASO 1 COPERTURA = 0 select @Copertura=copertura from C6Mart.RISCHIO_AGGREGATO -- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide where cod_aggreg='COMPLESSIVO|BF' AND COD_FISCALE = @COdiceFISCALE and RETE= @RETE ------------------------------------------------------------------------------ FINE CASO 1 ------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA -- Controllo se nel Portafoglio c'è solo CC select rete, cod_fiscale, id_area into #t1 from c6mart.patrimonio_bf where rete = @Rete and cod_fiscale = @CodiceFiscale group by rete,cod_fiscale, id_area select rete, cod_fiscale, count(*) as numero into #t2 from #t1 group by rete, cod_fiscale having count(*) = 1 if exists( select p.rete, p.cod_fiscale from c6mart.patrimonio_bf p inner join #t2 on p.rete = #t2.rete and p.cod_fiscale = #t2.cod_fiscale --where rete + cod_fiscale in (select rete + cod_fiscale from #t2) where p.id_area = 'liq' and p.tipo_prodotto = 'cc' ) set @soloCC = 1 else set @soloCC = 0 drop table #t1 drop table #t2 -- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza select @SoloProdottiSenzaAdeguatezza= count(*) from c6mart.patrimonio_bf patr left join [C6Staging].[Prodotti_Fuori_Adeguatezza] senza on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto where patr.rete = @rete and patr.cod_fiscale = @codicefiscale and senza.codinterno is null -- Se si verifica uno dei due casi, imposto la variabile a 1 if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1 set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1 else set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0 ----------------------------------------------------------------------------- FINE CASO 2 -- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA -- FINE CASO 3 -- RISULTATO FINALE if(@Copertura = 0) begin --if(@SoloProdottiSenzaAdeguatezza=0) if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1) begin set @IDTesto = 3 end else begin set @IDTesto = 1 end end else --if(@SoloProdottiSenzaAdeguatezza=0) if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1) begin set @IDTesto = 2 end select ID, Testo from [C6Mart].[TB_S178CasiParticolari_Testi] where ID = @IDTesto -- ********************* PARTE FINTA --select ID, Testo -- from [C6Mart].[TB_S178CasiParticolari_Testi] -- where ID = 0 end