7 / 7 / 7
Регистрация: 26.04.2015
Сообщений: 220
|
|
1 | |
Как из таблицы со списком, когда аудитории заняты, собрать таблицу со списком когда они свободны22.03.2017, 17:10. Показов 2801. Ответов 12
Есть таблица:
ID НомерАудитории Дата ВремяНачалааЗанятия ВремяКонца занятия 1 123 22.03.2017 12:00 14:00 2 123 22.03.2017 16:00 18:00 3 321 22.03.2017 12:00 14:00 4 321 22.03.2017 14:00 16:00 5 321 22.03.2017 16:00 18:00 ... В таблицу есть следующие триггеры: - на одно время нельзя один кабинет бронировать - время начала раньше времени конца - заполнять твблицу можно не чем за 10 минут до начала занятия в какойто аудитории - дальше чем на 2 месяца записывать нельзя - занятия что идут или уже закончились из таблицы удалять нельзя - Кабинет можно забронировать на время с 8:00 до 22:00 - ну и кабинеты связаны с таблицей "Список кабинетов" (не ключем, так чтобы и можно было удалить кабинет, а запись в таблице истории занятости оставалась). Вопрос: Вводится дата, на эту дату надо найти все свободные кабинеты, т.е. из примера получим: НомерАудитории Дата СвободенС СвободенДо 123 22.03.2017 8:00 12:00 123 22.03.2017 14:00 16:00 123 22.03.2017 18:00 22:00 321 22.03.2017 8:00 12:00 321 22.03.2017 18:00 22:00 Как отсортировать по дате я понимаю, а как найти время свободное? Я думала что можно найти ID каждого кабинета на определенную дату, но как дальше действовать чет не придумаю. Может есть какие варианты полегче?
0
|
22.03.2017, 17:10 | |
Ответы с готовыми решениями:
12
Вывести две таблицы со списком городов и одну со списком их координат На побережье три маяка; определить, когда они одновременно отключатся и когда одновременно загорятся Как реализовать работу со списком строк и списком цифр в классе List? Как сделать цикл со списком имен файлов и списком для их переименования |
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
22.03.2017, 17:26 | 2 |
занимать можно строго только в 8, 10, 12, 14, 16, 18 и 20.00 на 2/4/6/8/12/14 часов?
Добавлено через 3 минуты ВремяХХХзанятий - какой тип данных
0
|
7 / 7 / 7
Регистрация: 26.04.2015
Сообщений: 220
|
|
22.03.2017, 17:27 [ТС] | 3 |
YuryK, нет можно в любое вреся с 8:00 до 22:00 время длительности не ограничено
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
22.03.2017, 17:29 | 4 |
0
|
7 / 7 / 7
Регистрация: 26.04.2015
Сообщений: 220
|
|
22.03.2017, 17:29 [ТС] | 5 |
не поняла?
ID - автоинкримент номерКабинета - smallint дата - date время начала занятия - time время конца занятия - time Можно поменять, если от этого будет легче считать. Я вообще не могу придумать логику по которой можно искать. Мне бы итерацию каждой строки, типо как у массивов
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
22.03.2017, 17:37 | 6 |
Такая пойдет?
выбрать с 8.00 до первого занятия, если первое занятие позже 8.00 UNION ALL выбрать с конца последнего занятия до 22.00 если заканчивается раньше 22.00 UNION ALL от конца занятия до начала следующего, если они не совпали UNION ALL кабинеты вовсе не попавшие в заявку
1
|
7 / 7 / 7
Регистрация: 26.04.2015
Сообщений: 220
|
|
22.03.2017, 17:46 [ТС] | 7 |
YuryK, да, но как сравнивать строки в таблице
это я поняла как реализовывать, а не совсем понимаю. Я сразу не написала, наверное зря, записи же в таблице могут идти так: Есть таблица: ID НомерАудитории Дата ВремяНачалааЗанятия ВремяКонца занятия 1 123 22.03.2017 12:00 14:00 2 123 22.03.2017 16:00 18:00 3 321 22.03.2017 12:00 14:00 4 321 22.03.2017 14:00 16:00 5 321 22.03.2017 16:00 18:00 а могут так: Есть таблица: ID НомерАудитории Дата ВремяНачалааЗанятия ВремяКонца занятия 1 123 22.03.2017 12:00 14:00 2 321 22.03.2017 16:00 18:00 3 321 22.03.2017 14:00 16:00 4 321 22.03.2017 12:00 14:00 5 123 22.03.2017 16:00 18:00
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||||||
22.03.2017, 18:12 | 8 | |||||
Сообщение было отмечено Ruta как решение
Решение
как то так
1
|
7 / 7 / 7
Регистрация: 26.04.2015
Сообщений: 220
|
|
22.03.2017, 20:06 [ТС] | 9 |
Если я буду использовать вместо datetime data и time, результат изменится (кроме присвоения им даты и времени)?
Нельзя использовать статистический или вложенный запрос в выражении, используемом для списка GROUP BY предложения GROUP BY. Хотела сделать как выше: начал ругаться на переменную: Недопустимое имя столбца.
0
|
3548 / 2122 / 752
Регистрация: 02.06.2013
Сообщений: 5,150
|
||||||
22.03.2017, 21:33 | 10 | |||||
1
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
23.03.2017, 00:31 | 11 |
, MIN ... - лишнее (я запрос писал в блокноте, поэтому работоспособность с колес невозможна)
наверное, я с этими типам данных ещё не работал
1
|
7 / 7 / 7
Регистрация: 26.04.2015
Сообщений: 220
|
|
23.03.2017, 12:03 [ТС] | 12 |
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
23.03.2017, 12:05 | 13 |
1
|
23.03.2017, 12:05 | |
23.03.2017, 12:05 | |
Помогаю со студенческими работами здесь
13
Компьютер работает только когда не все слоты ОЗУ заняты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |