Torna al Thread

CREATE FUNCTION dbo.GetMovimenti ( @CodAlbergo Int = Null, @AnnoGestionale Int = Null, @Data1 SmallDateTime = Null, @Data2 SmallDateTime = Null ) RETURNS TABLE AS RETURN ( SELECT * From ( SELECT 'ITALIANI' AS TipoMov, COUNT(*)As Movimenti,'A' AS Stato FROM dbo.SchedinePS PS WHERE (PS.Codalbergo=@CodAlbergo Or @CodAlbergo Is Null) AND (PS.AnnoGestionale=@AnnoGestionale Or @AnnoGestionale Is Null) AND (PS.DataArrivo Between @Data1 And @data2 Or @Data1 IS NULL Or @Data2 IS NULL) AND (PS.IdStatoResidenza=121) UNION SELECT 'ITALIANI' AS TipoMov, COUNT(*)As Movimenti,'P' AS Stato FROM dbo.SchedinePS PS WHERE (PS.Codalbergo=@CodAlbergo Or @CodAlbergo Is Null) AND (PS.AnnoGestionale=@AnnoGestionale Or @AnnoGestionale Is Null) AND (PS.DataPartenza Between @Data1 And @data2 Or PS.DataPartenza=Case When @Data1 IS Null Or @Data2 IS Null Then DataPartenza END) AND (PS.IdStatoResidenza=121) )As TblTemp UNION SELECT * From ( SELECT 'STRANIERI' AS TipoMov, COUNT(*)As Movimenti, 'A' AS Stato FROM dbo.SchedinePS PS WHERE (PS.Codalbergo=@CodAlbergo Or @CodAlbergo Is Null) AND (PS.AnnoGestionale=@AnnoGestionale Or @AnnoGestionale Is Null) AND (PS.DataArrivo Between @Data1 And @data2 Or @Data1 IS NULL Or @Data2 IS NULL) AND (PS.IdStatoResidenza<>121) UNION SELECT 'STRANIERI' AS TipoMov, COUNT(*)As Movimenti, 'P' AS Stato FROM dbo.SchedinePS PS WHERE (PS.Codalbergo=@CodAlbergo Or @CodAlbergo Is Null) AND (PS.AnnoGestionale=@AnnoGestionale Or @AnnoGestionale Is Null) AND (PS.DataPartenza Between @Data1 And @data2 Or PS.DataPartenza=Case When @Data1 IS Null Or @Data2 IS Null Then DataPartenza END) AND (PS.IdStatoResidenza<>121) )As TblTemp ) GO
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5