-- exec [C6MartPeriodico].[Segnala_ProdottiNonCensiti] CREATE procedure [C6MartPeriodico].[Segnala_ProdottiNonCensiti_20190129] as set nocount on declare @Rete varchar(1) declare @CodFis varchar(20) declare @idTipoControllo int declare @tipprod varchar(100) declare @codint varchar(100) declare @codprod varchar(100) declare @subprod varchar(100) declare @maf varchar(100) declare @codabi varchar(100) declare @isin varchar(100) --create table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim varchar(8), rete varchar(1), codiceFiscale varchar(20), TIPPROD varchar(100), CODINT varchar(100), CODPROD varchar(100), SUBPROD varchar(100), MAF varchar(100), CODABI varchar(100), ISIN varchar(100)) declare @dtTrim varchar(8) set @dtTrim = [C6MartPeriodico].[getTrimestre](getdate(),0) exec dbo.CreaTabellaBackUp 'tSegnala_ProdottiNonCensiti_Result', 'C6MartPeriodico' truncate table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result declare cur cursor for SELECT rete, codiceFiscale, idTipoControllo FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] where idTipoControllo in (1, 2) --SELECT a.rete, a.codiceFiscale, a.idTipoControllo --FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] a -- inner join [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] b -- on a.rete = b.rete -- and a.codiceFiscale = b.cod_fiscale --where a.idTipoControllo in (1, 2) --and codiceFiscale = 'VNTGNN63D16D704Q' open cur fetch next from cur into @Rete, @CodFis, @idTipoControllo while @@fetch_status = 0 begin select @tipprod = tipprod, @codint = codint, @codprod = codprod, @subprod = subprod, @maf = maf, @codabi = codabi, @isin = isin from C6StagingPeriodico.SPB_CONTR_SINTESI SPB where SPB.rete = @Rete and SPB.codfis = @CodFis and positionid is NULL order by tipprod, codint, subprod if @maf = '' set @maf = null if @idTipoControllo = 1 begin -- 1. TipProd declare @TipoProdotto varchar(100) select distinct @TipoProdotto = TipoProdotto from C6StagingPeriodico.RP_CatalogoProdotti where TipoProdotto = @tipprod -- and codsottoprodotto = 'LSEL' and TipoProdotto = 'ASU2'-- AND CODMAF = '1499131' and codIsin = 'LU1829331989' --if @@rowcount = 0 if @TipoProdotto is null begin insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODPROD, MAF, CODABI ) values (@dtTrim, @Rete, @CodFis, @tipprod, @codprod, @maf, @codabi) --select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod --+ ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin end else begin -- 2. CodInt declare @CodInterno varchar(100) select distinct @CodInterno = codinterno from C6StagingPeriodico.RP_CatalogoProdotti where TipoProdotto = @tipprod and codinterno = @codint -- and codsottoprodotto = 'LSEL' and TipoProdotto = 'ASU2'-- AND CODMAF = '1499131' and codIsin = 'LU1829331989' --if @@rowcount = 0 if @CodInterno is null begin insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, MAF, CODABI) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @maf, @codabi) --select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint --+ ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin end else begin -- 3. SubProd declare @CodSottoProdotto varchar(100) select distinct @CodSottoProdotto = codsottoprodotto from C6StagingPeriodico.RP_CatalogoProdotti where TipoProdotto = @tipprod and codinterno = @codint and codsottoprodotto = @subprod --if @@rowcount = 0 if @CodSottoProdotto is null begin insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi) --select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod --+ ', CodIsin = ' + @isin end else begin -- 4. Isin declare @CodIsin varchar(100) select distinct @CodIsin = codIsin from C6StagingPeriodico.RP_CatalogoProdotti where TipoProdotto = @tipprod and codinterno = @codint and codsottoprodotto = @subprod and codIsin = @isin --if @@rowcount = 0 if @CodIsin is null begin insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi, @isin) --select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin end else begin -- 5. Maf declare @CodMaf varchar(100) select distinct codmaf from C6StagingPeriodico.RP_CatalogoProdotti where TipoProdotto = @tipprod and codinterno = @codint and codsottoprodotto = @subprod and codIsin = @isin and CodMaf = @maf --if @@rowcount = 0 if @CodMaf is null begin insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi, @isin) --select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin + ', CodMaf = ' + @maf end else begin insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale) values (@dtTrim, @Rete, @CodFis) --select 'CENSITO' end end end end end end else begin declare @DesProd varchar(200) declare @cod_interno varchar(100) declare @cod_sottoprodotto varchar(100) select @cod_interno = cod_interno, @cod_sottoprodotto = cod_sottoprodotto, @DesProd = DesProd from C6MartPeriodico.PROVENTI where rete = @Rete and cod_fiscale = @CodFis if @DesProd is null insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, CODINT, SUBPROD) values (@dtTrim, @Rete, @CodFis, @cod_interno, @cod_sottoprodotto) end --************************* set @TipoProdotto = null set @CodInterno = null set @CodSottoProdotto = null set @CodMaf = null set @CodIsin = null fetch next from cur into @Rete, @CodFis, @idTipoControllo end close cur deallocate cur select Rete, CodiceFiscale, isnull(TIPPROD, '') as TIPPROD, isnull(CODINT, '') as CODINT, isnull(CODPROD, '') as CODPROD, isnull(SUBPROD, '') as SUBPROD, isnull(MAF, '') as MAF, isnull(CODABI, '') as CODABI, isnull(ISIN, '') as ISIN from C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result order by TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN --drop table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result