The follow tables I have are:
CUSTOMERS (CustomerID, firstname, surname etc)
ROOMS (RoomID, RoomType, Description)
BOOKING (BookingID, CustomerID, Arriva
this query list all rooms and for each room shows if it is available within [Arrival , Departure] dates
SELECT
RoomType,
case when NOT EXISTS (SELECT RoomID
FROM ROOMS_BOOKED rb
JOIN BOOKING b on b.BookingID = rb.BookingID
WHERE rb.RoomID = r.Id
and ArrivalDate < 'param Departure Date here'
and DepartureDate > 'param Arrival Date here')
then 1 else 0 end IsAvailable
FROM ROOMS r