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