Torna al Thread
CREATE PROCEDURE SearchBollettino(
@cognome nvarchar(50),
@causale nvarchar(100),
@datainiziale varchar(40),
@datafinale varchar(40),
@cf nvarchar(16))
AS
BEGIN
Declare @datai datetime
Set @datai=Convert(datetime,@datainiziale)
Declare @surname varchar(50)
Set @surname=@cognome
Declare @dataf datetime
Set @dataf=CONVERT(datetime,@datafinale)
SELECT u.Cognome,
u.Nome,
u.Via,
u.Telefono,u.Comune,u.Cap,u.Provincia,u.Cf,b.Data_Versamento,b.Data_inserimento,b.IdOperatore,b.Note,
c.Causale,c.Nr_CC,
case
WHEN @surname='' THEN ( SELECT u.Cognome,
u.Nome,
u.Via,
u.Telefono,u.Comune,u.Cap,u.Provincia,u.Cf,b.Data_Versamento,b.Data_inserimento,b.IdOperatore,b.Note,
c.Causale,c.Nr_CC from
Utenti u
Left Join Bollettino b on u.idUtenti = b.IdUtente
INNER JOIN Causale c on b.IdCausale = c.IdCausale
where u.Cognome=@surname )
WHEN @causale is not null THEN (SELECT u.Cognome,
u.Nome,
u.Via,
u.Telefono,u.Comune,u.Cap,u.Provincia,u.Cf,b.Data_Versamento,b.Data_inserimento,b.IdOperatore,b.Note,
c.Causale,c.Nr_CC from
Utenti u
Left Join Bollettino b on u.idUtenti = b.IdUtente
INNER JOIN Causale c on b.IdCausale = c.IdCausale
where b.Data_Versamento between @datainiziale and @datafinale and c.Causale = @causale)
WHEN @cf is not null THEN (SELECT u.Cognome,
u.Nome,
u.Via,
u.Telefono,u.Comune,u.Cap,u.Provincia,u.Cf,b.Data_Versamento,b.Data_inserimento,b.IdOperatore,b.Note,
c.Causale,c.Nr_CC from
Utenti u
Left Join Bollettino b on u.idUtenti = b.IdUtente
INNER JOIN Causale c on b.IdCausale = c.IdCausale
where b.Data_Versamento between @datai and @dataf)
END
from
Utenti u
Left Join Bollettino b on u.idUtenti = b.IdUtente
INNER JOIN Causale c on b.IdCausale = c.IdCausale where
b.Data_Versamento between @datainiziale and @datafinale
END