Как найти свободные номера между заданным диапазоном дат
привет,
В настоящее время я работаю над системой бронирования больничных палат. В этом случае я хочу отобразить свободные номера из заданного диапазона дат. Даже если один день свободен, он должен забрать его. Пожалуйста, поделитесь своими идеями или примерным запросом
У меня есть два стола, один из которых является хозяином комнаты, а другой-столом temp_booking.
Я хочу узнать у хозяина комнаты, какие комнаты свободны для данного диапазона дат. Номер содержится номер, категория номера и temmp_booking используется для бронирования, в котором содержится номер нет, book_from_date и book_to_date
Напр.:
Дата начала - 01/01/2018
дата окончания - 15.01.2018
категория номера - "люкс делюкс"
Всего номеров данной категории - 6 (ДС-1, ДС-2...... ДС-6)
Номер без категории book_from_date book_to_date
DS-1 Deluxe Suite 01/01/2018 01/15/2018
Ds-2 Deluxe Suite 01/04/2018 01/15/2018
Ds-3 Deluxe Suite 01/01/2018 01/10/2018
из приведенной выше таблицы я хочу отобразить Ds-2 и Ds-3, а также остальные номера DS-4, DS-5 и также 6, Когда я проверяю наличие свободных номеров с 01/01/2018 по 01/15/2018.
Потому что ДС-2 свободна от 01/01/2018 в 01/03/2018 и ДС-3 свободен от 01/11/2018 в 01/15/2018 и оставшиеся 3 номера имеют бронирование. Надеюсь, ты понял. Я хочу перечислить это в приоритетном порядке.
Что я уже пробовал:
SELECT r.Room_No FROM room_master AS r WHERE room_catg = 'Deluxe Suite' AND r.room_no NOT IN (SELECT t1.room_no FROM Room_Master t1 INNER JOIN temp_booking t2 ON t1.room_no = t2.room_no WHERE NOT (Book_To_Date < '01/01/2018') OR ([Book_To_Date] > '01/15/2018'))
Этот запрос отображает номера, которые полностью свободны для данного диапазона дат.
OriginalGriff
Мы не можем: мы понятия не имеем, как выглядят ваши таблицы, какие данные они содержат, как они связаны. Мы понятия не имеем, что этот запрос производит, что отличается от того, что вы хотите.
Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.