USP_DATALIST_RESERVATIONSFORDAY
Returns a list of reservations for a given day.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GIVENDATE | date | IN | Date |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_RESERVATIONSFORDAY(@GIVENDATE date)
as
set nocount on;
declare @UPPERBOUND datetime;
set @UPPERBOUND = dbo.UFN_DATE_GETLATESTTIME(@GIVENDATE);
select
RESERVATION.ID,
RESERVATION.NAME,
case
when RESERVATION.ARRIVALDATE = @GIVENDATE then
case
when len(RESERVATION.ARRIVALTIME) > 0 then
RESERVATION.ARRIVALTIME
else
dbo.UFN_HOURMINUTE_GETFROMDATE(min(ITINERARY.STARTDATETIME))
end
else
case
when min(ITINERARY.STARTDATETIME) < @GIVENDATE then
'0000'
else
dbo.UFN_HOURMINUTE_GETFROMDATE(min(ITINERARY.STARTDATETIME))
end
end as [STARTTIME],
case
when max(ITINERARY.ENDDATETIME) > @UPPERBOUND then
'2359'
else
dbo.UFN_HOURMINUTE_GETFROMDATE(max(ITINERARY.ENDDATETIME))
end as [ENDTIME],
sum(dbo.UFN_ITINERARY_TOTALVISITORCOUNT(ITINERARY.ID)) as [NUMBEROFVISITORS]
from
dbo.RESERVATION
inner join
dbo.SALESORDER
on SALESORDER.ID = RESERVATION.ID
left outer join
dbo.ITINERARY
on RESERVATION.ID = ITINERARY.RESERVATIONID
and (
ITINERARY.STARTDATETIME is null
or ITINERARY.STARTDATETIME between @GIVENDATE and @UPPERBOUND
or ITINERARY.ENDDATETIME between @GIVENDATE and @UPPERBOUND
or (ITINERARY.STARTDATETIME < @GIVENDATE and ITINERARY.ENDDATETIME > @UPPERBOUND)
)
where
(SALESORDER.STATUSCODE <> 5 )
and (RESERVATION.ARRIVALDATE = @GIVENDATE
or ITINERARY.STARTDATETIME is not null)
group by
RESERVATION.ID,
RESERVATION.NAME,
RESERVATION.ARRIVALDATE,
RESERVATION.ARRIVALTIME;
return 0;