I have this table:
Table ___Bookings
:
|--------|------------|--------------|------------|------------|
| BOO_Id | BOO_RoomId | BOO_ClientId | BOO_DateCI | BOO_DateCO |
|--------|------------|--------------|------------|------------|
| 1 | 9 | 45 | 2018-01-02 | 2018-01-03 |
| 2 | 4 | 46 | 2017-12-30 | 2018-01-07 |
| 3 | 3 | 2 | 2018-12-31 | 2018-01-01 |
| 4 | 9 | 98 | 2018-01-05 | 2018-01-10 |
|--------|------------|--------------|------------|------------|
I'm looking to display, per day, the bookings in departure, in arrival or in house.
The desired output should be something like this:
2017-12-30 = Booking #2 in arrival.
2017-12-31 = Booking #3 in arrival.
= Booking #1 in arrival.
= Booking #2 in house.
2018-01-01 = Booking #3 in departure.
= Booking #2 in house.
2018-01-02 = Booking #1 in arrival.
= Booking #2 in house.
2018-01-03 = Booking #1 in departure.
= Booking #2 in house.
2018-01-04 = Booking #2 in house.
2018-01-05 = Booking #4 in arrival.
= Booking #2 in house.
2018-01-06 = Booking #2 in house.
= Booking #4 in house.
2018-01-07 = Booking #2 in departure.
= Booking #4 in house.
2018-01-08 = Booking #4 in house.
2018-01-09 = Booking #4 in house.
2018-01-10 = Booking #4 in departure.
What I already tried:
SELECT *,
CASE
WHEN BOO_DateCI = '2017-04-01' THEN 'In Arrival'
WHEN BOO_DateCO = '2017-04-30' THEN 'In Departure'
WHEN '2017-04-01' > BOO_DateCI AND '2017-04-01' < BOO_DateCO THEN 'In House'
END
FROM ___Bookings
WHERE BOO_DateCI = '2017-04-01'
OR BOO_DateCO = '2017-04-30'
OR '2017-04-01' BETWEEN BOO_DateCI AND BOO_DateCO;
But I can't get the in house
bookings and can't group the booking depending the status arrival
, departure
or in-house
.