Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/48: Рейтинг темы: голосов - 48, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 4
1

Запрос свободных номеров гостиницы

26.12.2013, 18:58. Показов 9066. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня такой вопрос. Создал информационную систему "Гостиница" в делфи, с таблицами Клиенты, Регистрация, Номера, Обслуживание и Бронирование, и одна из задач ИС - отображение свободных номеров, т. е. тех номеров, номер ключа которых не указан в таблицах Регистрация и Бронирование, а в таблице Номера они имеются. Знаю, что вся работа будет проходить вокруг SQL, вот только не знаю как правильно построить запрос. Помогите плиз...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2013, 18:58
Ответы с готовыми решениями:

Учет свободных и занятых номеров
Доброго времени Вам суток! Имеется хранилище(маленькое) которое хранит в себе данные об отелях, ...

Sql запрос на выдачу свободных мест в зале
Здравствуйте как сделать запрос который будет выводить все номера мест которые не заняты. ...

Запрос на вывод количества свободных номеров за конкретный период в бд Гостиница
Т.е. номера, которые свободны от бронирования и не заняты клиентами на дату которая указана в...

Не получается создать хранимую процедуру, которая выводила бы список свободных номеров на текущую дату
Пытаюсь создать хранимую процедуру, которая выводила бы список свободных номеров на текущую дату,...

4
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
27.12.2013, 09:01 2
Примерно так, не зная контретные имена полей Ваших таблиц:

SQL
1
2
3
4
SELECT Ключ FROM НОМЕРА WHERE Ключ NOT IN 
(SELECT Ключ FROM Обслуживание WHERE <тут либо интервал времени, либо признак, что в данный момент номер не обслуживается>)
AND NOT IN
(SELECT Ключ FROM Бронирование WHERE  <тут либо интервал времени, либо признак, что в данный момент номер не обслуживается>)
1
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 4
27.12.2013, 09:30  [ТС] 3
Имена полей:
Таблица Регистрация: ID_registraciya, ID_client, ID_nomer
Таблица Номера: ID_nomer, ID_obsluzhivaniya
Таблица Бронирование: ID_bronirovaniya

Lookup:
Nomer.ID_nomer←Registraciya.ID_nomer
Bronirovanie.ID_bronirovaniya→Nomer.ID_nomer

Препод предложил еще такой вариант, в таблице Номера создать поле Статус, которое должно автоматически заполняться в соответствии с номером словом "занят" при вводе ID_nomer в таблицах Регистрация и Бронирование. А потом по этому полю ориентироваться, какой номер занят или свободен. вот как это условие "вбить" в SQL подскажите, пожалуйста, заранее спасибо =)
0
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
27.12.2013, 12:08 4
Мне не очень понятна структура Ваших таблиц. Мне кажется, что они неправильно спроектированы.
Я бы предложила следующую структуру таблиц:
1. Клиенты: (* ID_client, FIO, и т.д. все нужные данные о клиенте)

2. Регистрация: (* ID_ registraciya, ID_nomer, дата регистрации или бронирования, признак, статус)
Где признак - это сигнал того, что номер еще обслуживается в данный момент или обслуживание номера уже завершено.
Например, признак=0 – обслуживание завершено.
Признак =1, обслуживание еще не закончено.
Статус - это заселение или бронирование
ID_nomer – номер в отеле.

3. Номера_в_отеле (*ID_nomer, этаж, комфортность и т.д. все нужные данные о номере) .

Где в скобках указаны поля таблиц, первичные ключи отмечены «*».

Тогда следующий запрос вернет все номера, которые в данный момент не участвуют ни в регистрации, ни в бронировании:
SQL
1
2
3
SELECT ID_nomer FROM Номера_в_отеле WHERE
ID_nomer NOT IN 
(SELECT ID_nomer FROM Регистрация WHERE признак=1)
0
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 4
27.12.2013, 12:49  [ТС] 5
ita2907, Спасибо, все получилось, даже не надо было создавать дополнительное поле Статус)))
0
27.12.2013, 12:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2013, 12:49
Помогаю со студенческими работами здесь

Запрос за вывод свободных мест в общежитии по комнатам
Необходима процедура на вывод свободных койко-мест (по комнатам) в общежитии, но как сделать - не...

SQL-запрос для вывода всех табельных номеров сотрудников
Здравствуйте! Вот есть такая небольшая задача, связанная с SQL. В БД есть две таблицы: Table A и...

Получение нужного количества свободных номеров Id
Хочу на всякий случай спросить для полной уверенности. Если я с клиента запустил вот такую...

Запрос свободных номеров гостиницы access
Необходимо создать запрос тех номеров, которые свободны. Номер свободен, если у него поле &quot;дата...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru