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

104 lines
3.0 KiB
Transact-SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: SP_DQ_PiramideAreeDuplicate
-- =============================================
-- Author: Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:
-- Individuazione dei Clienti che presentano nella piramide modello una o più
-- aree/progetti duplicati
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================
CREATE procedure [C6MartPeriodico].[SP_DQ_PiramideAreeDuplicate]
@idFaseElaborazione int
AS
BEGIN
Declare @idTipoControllo int
set @idTipoControllo=6
SELECT DISTINCT
d.rete,
case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
when (isnull(codfis,'') <> '') then codfis
else c.piva
end as Codicefiscale,
@idTipoControllo idtipocontrollo
into #TbErrori
FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b
ON b.chiaveClientePB = a.chiaveClientePB
AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c
ON b.chiaveCliente = c.chiaveCliente
JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d
ON b.chiavePB = d.chiavePB
WHERE
A.chiaveclientepb in (
select distinct chiaveclientepb
FROM
(
--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM
--[CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello
--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
--group by chiaveclientepb,area,tipoprogetto
--having COUNT(*)<>1
SELECT chiaveclientepb,area,COUNT(*) as c
FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
on progmod.chiaveAreaMod = areamod.chiaveAreaMod
where area <> 'na'
group by chiaveclientepb,area
having COUNT(*)<>1
) t
)
declare @idElab int
select @idElab=max(id_elab) from c6martperiodico.elaborazioni
--select * from c6martperiodico.tb_tipocontrollo
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
(
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,tbErr.rete,Codicefiscale,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
inner join c6stagingperiodico.appo_contratti_v Contr
on tbErr.rete = contr.rete
and tbErr.CodiceFiscale = contr.cod_fiscale
end