Я не могу обернуть свой разум вокруг этой проблемы. Таким образом, я использую 2 таблицы, как это: Таблица Классные:Найдите пустые классные комнаты в оракуле sql
CLASSROOMS
----------
Num | Type
__________
1 |'Normal'
2 |'Normal'
3 |'Normal'
1 |'Lab'
2 |'Lab'
Таблица Классы:
CLASSES
-------------------------
s_h | f_h | num | type
_________________________
8:30 |10:30| 1 | 'Normal'
8:30 |10:30| 1 | 'Lab'
8:30 |10:30| 2 | 'Normal'
10:30|12:30| 1 | 'Normal'
12:30|14:30| 2 | 'Lab'
Я в принципе хочу, чтобы зарезервировать класс, вставив строку вставки 2 table.the должны выполняться посредством процедуры. эта процедура, учитывая начальное и конечное время предпочтения, должна выглядеть в основном для пустого класса и если нет возврата таблицы любого доступного времени для каждого класса. Теперь, предполагая, что нет времени_заследования, которые определяют формат и длину классов, и я знаю только, что в школе есть время открытия и закрытия, как я могу найти такой набор результатов? Давайте посмотрим на пример, чтобы прояснить, чего я пытаюсь достичь. Рассмотрим простейший пример. Два классных комнаты того же типа.
CLASSROOMS
----------
Num | Type
__________
1 |'Normal'
2 |'Normal'
Давайте далее рассмотрим, что первый класс занят с 10:00 до 13:00, а второй с 9:00 до 13:00, то первый из них имеет три класса 1 час каждый, а второй у одного есть два часа. Мы Therfore есть таблица выглядит следующим образом:
Таблица Классы:
CLASSES
-------------------------
s_h | f_h | num | type
_________________________
10:00|11:00| 1 | 'Normal'
11:00|12:00| 1 | 'Normal'
12:00|13:00| 1 | 'Normal'
09:00|11:00| 2 | 'Normal'
11:00|13:00| 2 | 'Normal'
Теперь из этой таблицы я хочу, чтобы построить таблицу, которая говорит мне, в основном, когда каждый класс волен заказать. в этом случае по существу что-то вроде этого: (может быть более простой способ, я не уверен)
FREE
-----------------------------
s_h | f_h | num | type
_____________________________
08:00|10:00| 1 | 'normal'
13:00|14:00| 1 | 'normal'
8:00|09:00| 2 | 'normal'
13:00|14:00| 2 | 'normal'
, как я могу получить такой результат?
Моей единственной сложной задачей было создание таблицы всех возможных времен, а затем делать что-то вроде классов минус эта таблица, но, конечно, она не будет работать сначала, потому что я должен преобразовать каждый урок в несколько строк на основе того, насколько точны i хотите, чтобы результат был, и второй, потому что эта вторая таблица будет слишком большой. Так что в основном самое наивное решение есть. Так хорошо ... 2 pennys для ваших стриттов.
Похоже, вы хотите сделать «@ DATEDIFF» со временем; 'JOIN' все таблицы и' @ DATEDIFF' между 's_h' и' f_h' не равны 0, тогда класс должен быть доступен. –
Это очень неопределенный ответ, не могли бы вы разоблачить свою идею дальше? – darkpirate
Эта проблема планирования на самом деле довольно сложно решить в SQL, поскольку SQL работает со строками и работает с сеткой с сеткой. – APC