PDC_REPORT_CreazioneDB/sql/Produzione/procedure/C6MartPeriodico_Segnala_ProdottiNonCensiti.sql
2025-06-10 15:29:00 +02:00

188 lines
8.0 KiB
Transact-SQL

-- exec [C6MartPeriodico].[Segnala_ProdottiNonCensiti]
CREATE procedure [C6MartPeriodico].[Segnala_ProdottiNonCensiti]
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 @contaLimiter int
select @contaLimiter = count(*) from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER]
if @contaLimiter = 0
begin
declare cur cursor for
SELECT rete, codiceFiscale, idTipoControllo
FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]
where idTipoControllo in (1, 2)
end
else
begin
declare cur cursor for
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)
end
--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