PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_Segnala_ProdottiNonCensiti.sql
2025-06-06 19:02:52 +02:00

119 lines
3.9 KiB
Transact-SQL

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