2025-06-26 18:47:11 +02:00

153 lines
5.0 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--exec C6_S_QueryRicerca @CodicePB=NULL,@NomePB=NULL,@CognomePB=NULL,@CFCliente=DNNSVR58P09I520Y,@NomeCliente=NULL,@CognomeCliente=NULL,@Rete=N'S'
CREATE PROCEDURE [dbo].[C6_S_QueryRicerca]
-- Add the parameters for the stored procedure here
@CodicePB as varchar(6),
@NomePB as varchar(50),
@CognomePB as varchar(50),
@CFCliente as varchar(16),
@NomeCliente as varchar(50),
@CognomeCliente as varchar(50),
@Rete as varchar(1)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @tiporeport as varchar(255)
set @tiporeport = ''
select distinct @tiporeport = @tiporeport + ',' +c.tiporeport
FROM C6ReportFisico c
WHERE
((@rete is null) or (c.rete = @rete))
and
((@CodicePB is null) or (c.CodicePB like @codicePB + '%'))
and
((@cfCliente is null) or (c.Cliente like @cfCliente + '%'))
and
((@nomeCliente is null) or (c.nomeCliente like @nomeCliente + '%'))
and
((@cognomeCliente is null) or (c.cognomeCliente like @cognomeCliente + '%'))
and
((@cognomePB is null) or (c.cognomePB like @cognomePB + '%'))
and
((@nomePB is null) or (c.nomePB like @nomePB + '%'))
if(len(@tiporeport)>0)
set @tiporeport = right(@tiporeport,len(@tiporeport)-1)
-- Insert statements for procedure here
SELECT DISTINCT
Rete,
CodiceFiscale,
NomeCliente,
CognomeCliente,
CodicePB,
NomePB,
CognomePB,
tipoReport
FROM (
SELECT DISTINCT
Rete,
c.Cliente as CodiceFiscale,
c.NomeCliente as NomeCliente,
c.CognomeCliente as CognomeCliente,
c.CodicePB as CodicePB,
isnull(c.NomePB,'') as NomePB,
isnull(c.cognomePB,'') as CognomePB,
1 as tipoReport
--case upper(@tiporeport) when 'DIAGNOSI' then '1' when 'MONITORAGGIO' then '4' else '0' end as tiporeport
FROM
C6ReportFisico c
WHERE
((@rete is null) or (c.rete = @rete))
and
((@CodicePB is null) or (c.CodicePB like @codicePB + '%'))
and
((@cfCliente is null) or (c.Cliente like @cfCliente + '%'))
and
((@nomeCliente is null) or (c.nomeCliente like @nomeCliente + '%'))
and
((@cognomeCliente is null) or (c.cognomeCliente like @cognomeCliente + '%'))
and
((@cognomePB is null) or (c.cognomePB like @cognomePB + '%'))
and
((@nomePB is null) or (c.nomePB like @nomePB + '%'))
-- AND isnull(C.FLAGPERIODICO,0)=0
-- (@nomePB = null) or
-- (u.utente = @codicePB) or
-- (@cognomePB = null) or
-- (u.utente = @codicePB) or
union all
SELECT DISTINCT
Rete,
c.Cliente as CodiceFiscale,
c.NomeCliente as NomeCliente,
c.CognomeCliente as CognomeCliente,
c.CodicePB as CodicePB,
isnull(c.NomePB,'') as NomePB,
isnull(c.cognomePB,'') as CognomePB,
1 as tipoReport
--case upper(@tiporeport) when 'MARKETING' then '5' else '0' end as tiporeport
FROM
C6ReportFisico_campagna c
WHERE
((@rete is null) or (c.rete = @rete))
and
((@CodicePB is null) or (c.CodicePB like @codicePB + '%'))
and
((@cfCliente is null) or (c.Cliente like @cfCliente + '%'))
and
((@nomeCliente is null) or (c.nomeCliente like @nomeCliente + '%'))
and
((@cognomeCliente is null) or (c.cognomeCliente like @cognomeCliente + '%'))
and
((@cognomePB is null) or (c.cognomePB like @cognomePB + '%'))
and
((@nomePB is null) or (c.nomePB like @nomePB + '%'))
AND C.FLAGPERIODICO=1
-- (@nomePB = null) or
-- (u.utente = @codicePB) or
-- (@cognomePB = null) or
-- (u.utente = @codicePB) or
--V nel caso in cui non ha report online e tutti i report batch sono stati storicizzati,
--è una pezza momentanea mi serve un flusso dati che mi popoli una tabella per i promotori
-- perchè quella di report manager non è buona, per il momento uso le tabelle della trimestrale
union all
--
select distinct
a.rete,
a.cod_fiscale as CodiceFiscale,
a.nome as NomeCliente,
a.cognome as CognomeCliente,
a.cod_agente as CodicePB,
isnull(c.nome,'') as NomePB,
isnull(c.cognome,'') as CognomePB,
1 as tipoReport
from repositoryMetadati a
left join [10.10.32.203].[C6StampeCentralizzate].[c6mart].contrattosei b
on a.rete = b.rete and a.cod_fiscale = b.cod_fiscale and a.cod_agente = b.cod_agente
left join [10.10.32.203].[C6StampeCentralizzate].[c6martperiodico].anag_promotori c
on c.rete = b.rete and c.id_promotore = b.cod_Agente
where repositoryPreStorico in (1,2)
--and a.cod_fiscale = 'DLCRNO58A41D211F'
AND
((@rete is null) or (a.rete = @rete))
and
((@CodicePB is null) or (a.Cod_agente like @codicePB + '%'))
and
((@cfCliente is null) or (a.Cod_Fiscale like @cfCliente + '%'))
and
((@nomeCliente is null) or (a.nome like @nomeCliente + '%'))
and
((@cognomeCliente is null) or (a.cognome like @cognomeCliente + '%'))
and
((@cognomePB is null) or (c.cognome like @cognomePB + '%'))
and
((@nomePB is null) or (c.nome like @nomePB + '%'))
) T
Order by
Rete,CodicePB,CognomePB,NomePB,CodiceFiscale,CognomeCliente,NomeCliente
END