Torna al Thread
CREATE PROCEDURE [dbo].[ChiusuraMese]
(
@Codalbergo Int,
@CodComAlbergo Int,
@Data SmallDateTime=Null,
@Data1 SmallDateTime=Null
)
AS
--DECLARE @MyDate datetime
DECLARE @numRow Int
DECLARE @numRowA Int
DECLARE @numRowP Int
DECLARE @codalb Int
DECLARE @codcomalb Int
DECLARE @ncomp Int
DECLARE @annogestionale Int
DECLARE @data_elaborazione SmallDateTime
DECLARE @stato Varchar
DECLARE @STATORES varchar(250)
DECLARE @codnazione Int
DECLARE @comune varchar(250)
DECLARE @provincia varchar(2)
DECLARE @codcomune int
DECLARE @codgruppo int
SET @numRow = 0
DECLARE @nschedina int
BEGIN
CREATE TABLE #tblTemp
(
numRow INT ,
nschedina int,
codalbergo INT ,
codcomalb INT ,
annogestionale Int,
data_elaborazione SmallDateTime,
data_Arrivo SmallDateTime ,
data_Partenza SmallDateTime ,
stato varchar(1),
statores varchar(250),
codnazione int,
comune varchar(250),
provincia varchar(2),
codcomune int,
codgruppo int,
nrcomp int
)
DECLARE ShiftCursorValue CURSOR FOR
SELECT max(prog_schedina)as nschedina,codalbergo,codcomalb,annogestionale,data_elaborazione,stato,ncomp,stato_res,codstato,comune,prov,codcomune,codgruppo
FROM archivio_mov
WHERE Codalbergo=@Codalbergo AND codcomalb=@CodComAlbergo AND Data_elaborazione BetWeen @Data AND @Data1
group by codalbergo,codcomalb,annogestionale,stato_res,codstato,comune,prov,codcomune,codgruppo,data_elaborazione,ncomp,stato
Order by data_elaborazione
OPEN ShiftCursorValue
FETCH NEXT FROM ShiftCursorValue INTO
@nschedina,@codalb,@codcomalb,@annogestionale,@data_elaborazione,@stato,@ncomp,@statores,@codnazione,@comune,@provincia,@codcomune,@codgruppo
WHILE @@FETCH_STATUS = 0
BEGIN
IF (LTRIM(@stato) = 'A')
BEGIN
SET @numRow = @numRow + 1
INSERT INTO #tblTemp
(numRow,nschedina,codalbergo,codcomalb,annogestionale,stato,data_elaborazione,data_Arrivo,data_Partenza,statores,codnazione,comune,provincia,codcomune,codgruppo,nrcomp)
VALUES
(@numRow,@nschedina,@codalb,@codcomalb,@annogestionale,@stato,@data_elaborazione,@data_elaborazione,null,@statores,@codnazione,@comune,@provincia,@codcomune,@codgruppo,@ncomp)
END
IF (LTRIM(@stato) = 'P')
--BEGIN
BEGIN
SELECT
@numRowP =numrow
FROM
#tblTemp
WHERE
codalbergo=@codalbergo AND codcomalb=@codcomalb AND data_Partenza is null AND
codnazione=@codnazione AND comune=@comune
IF @numrowp is not null
UPDATE
#tblTemp
SET
data_partenza=@data_elaborazione
WHERE
(data_Partenza is null AND codalbergo=@codalbergo AND codcomune=@codcomune AND
codnazione=@codnazione AND comune=@comune AND numRow=@numRowP)
END
FETCH NEXT FROM ShiftCursorValue INTO
@nschedina,@codalb,@codcomalb,@annogestionale,@data_elaborazione,@stato,@ncomp,@statores,@codnazione,@comune,@provincia,@codcomune,@codgruppo
END
CLOSE ShiftCursorValue
DEALLOCATE ShiftCursorValue
select nschedina,codalbergo,codcomalb,annogestionale,statores,codnazione,comune,provincia,codcomune,codgruppo,data_elaborazione,data_arrivo,IsNull(data_partenza,Null) as data_partenza,nrcomp
from #tbltemp
where
Codalbergo=@Codalbergo AND codcomalb=@Codcomalbergo AND
Data_elaborazione BetWeen @Data AND @Data1
group by nschedina,codalbergo,codcomalb,annogestionale,statores,codnazione,comune,provincia,codcomune,codgruppo,data_elaborazione,data_arrivo,data_partenza,nrcomp
Return
END