Torna al Thread

ALTER PROCEDURE [dbo].[Stampa] ( @Codalbergo Int, @CodComAlb Int, @Data SmallDateTime=Null, @Data1 SmallDateTime=Null, @Anno Int=Null ) AS DECLARE @numRow Int DECLARE @numRowA Int DECLARE @numRowP Int DECLARE @codalb Int DECLARE @codcomune Int DECLARE @ncomp Int DECLARE @annogestionale Int DECLARE @data_elaborazione SmallDateTime DECLARE @stato Varchar DECLARE @Nazione Varchar(250) DECLARE @comune varchar(250) SET @numRow = 0 BEGIN CREATE TABLE #tblTemp ( numRow INT , codalbergo INT , codcomune INT , annogestionale Int, data_elaborazione SmallDateTime, data_Arrivo SmallDateTime , data_Partenza SmallDateTime , nazione varchar(250), comune varchar(250), codcategoria int, GGpresenze Int ) DECLARE ShiftCursorValue CURSOR FOR SELECT codalbergo,codcomalb,data_elaborazione,stato,ncomp,stato_res,comune FROM archivio_mov WHERE Codalbergo=@Codalbergo AND codcomalb=@Codcomalb AND Data_elaborazione BetWeen @Data AND @Data1 Order by data_elaborazione OPEN ShiftCursorValue FETCH NEXT FROM ShiftCursorValue INTO @codalb,@codcomune,@data_elaborazione,@stato,@ncomp,@nazione,@comune WHILE @@FETCH_STATUS = 0 BEGIN IF (LTRIM(@stato) = 'A') BEGIN SET @numRowA = @ncomp WHILE @numRowA <> 0 BEGIN SET @numRow = @numRow + 1 INSERT INTO #tblTemp (numRow,codalbergo,codcomune,data_elaborazione,data_Arrivo,data_Partenza,nazione,comune) VALUES (@numRow,@codalbergo,@codcomune,@data_elaborazione,@data_elaborazione,null,@nazione,@comune) SET @numRowA = @numRowA -1 END END IF (LTRIM(@stato) = 'P') BEGIN WHILE @ncomp <> 0 BEGIN SELECT @numRowP =numrow FROM #tblTemp WHERE codalbergo=@codalbergo AND codcomune=@codcomune AND data_Partenza is null AND nazione=@nazione AND comune=@comune UPDATE #tblTemp SET data_partenza=@data_elaborazione WHERE (data_Partenza is null AND codalbergo=@codalbergo AND codcomune=@codcomune AND nazione=@nazione AND comune=@comune AND numRow=@numRowP) SET @ncomp = @ncomp - 1 END END FETCH NEXT FROM ShiftCursorValue INTO @codalb,@codcomune,@data_elaborazione,@stato,@ncomp,@nazione,@comune END CLOSE ShiftCursorValue DEALLOCATE ShiftCursorValue select codalbergo,codcomune,nazione,comune,data_elaborazione,data_arrivo,IsNull(data_partenza,dbo.GetLastDateOfMounth(data_arrivo)) as data_partenza,IsNull(GGPresenze,dbo.GetGGpresenze(data_arrivo,IsNull(data_partenza,dbo.GetLastDateOfMounth(data_arrivo)))) As GGPresenze,count(data_arrivo) As totArrivi,Sum(isnull(GGPresenze,dbo.GetGGpresenze (data_arrivo,IsNull(data_partenza,dbo.GetLastDateOfMounth(data_arrivo)))))As presenze from #tbltemp where Codalbergo=@Codalbergo AND codcomune=@Codcomalb AND Data_elaborazione BetWeen @Data AND @Data1 group by codalbergo,codcomune,nazione,comune,data_elaborazione,data_arrivo,data_partenza,GGpresenze select count(data_arrivo) As totArrivi, Sum(isnull(GGPresenze,dbo.GetGGpresenze (data_arrivo,IsNull(data_partenza,dbo.GetLastDateOfMounth(data_arrivo)))))As TotPresenze From #tbltemp Return END
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5