![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Date |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.3.2006 Где: Алматы Репутация: нет Всего: 3 |
Добрый день!
Есть 2 таблицы, TimeRange и TimeControl TimeRange – это набор временных диапазонов. Структура такая ID int(11) TimeRange text TimeControl — в этой таблице храниться дата и время. А именно занятое время. Структура такая ID int(11) DATE date TimeID int(11) Вопрос такой: как можно получить свободное время в дне.. Например: 2011-09-16 - 1 2011-09-16 - NULL 2011-09-16 - 3 2011-09-16 - NULL 2011-09-16 - NULL 2011-09-16 - 6 2011-09-16 - 7 2011-09-16 - NULL 2011-09-16 - 9 2011-09-16 - NULL 2011-09-17 - 1 2011-09-17 - NULL и т.д. Сломал уже всю голову... заранее благодарю. --------------------
Люди не будьте свиньями, Бросайте мусор в урны. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Охренительный просто пример! Несколько записей из первой таблицы (все поля!!!). Несколько записей из второй таблицы. Желаемый результат НА ПРИВЕДЁННЫХ ДАННЫХ. Объяснение, почему он именно такой. При оформлении использовать моноширинный шрифт (или соотв. теги). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Date |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.3.2006 Где: Алматы Репутация: нет Всего: 3 |
Чем Вам не нравиться пример? я указал что именно необходимо получить.
все записи результат слияния двух таблиц, Дата берется из таблицы TimeControl, следующее поле заполняется, по мере скажем так "занятости", то есть если время в этом дне занято то оно получает его ID, если нет то ставим NULL --------------------
Люди не будьте свиньями, Бросайте мусор в урны. |
|||
|
||||
AndreyIQ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 3 Всего: 8 |
Тоже сломал всю голову. Вам уже было написано как надо оформить, если Вы не хотите нам помочь разобраться, то чего Вы от нас хотите? ![]() |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Date, неужели вы не понимаете, что ваша задача не понятна не только вам. Повторю то, что уже сказал Акина.
Если желаете помощи, приведите исходные данные. Не менее трех строк для каждой таблицы. И приведите результат, ожидаемый на этих исходных данных. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Date, проблема - у Вас. Поверьте на слово, всем, кроме Вас, глубоко плевать, решите Вы её или нет.
Ваш отказ от предоставления запрошенной информации трактуется однозначно - Вам тоже плевать. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Date |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.3.2006 Где: Алматы Репутация: нет Всего: 3 |
постараюсь попонятнее объяснить:
есть таблица TimeRange - эта таблица содержит диапазоны доступного времени (то есть времени которое можно выбрать), на пример с 8.00 до 9.00, с 9.00 до 10.00 и т.д. структура таблицы описана выше. Листинг:
TimeControl - в этой таблице занятое время на конкретную дату. то есть 2011-09-11, занятое время 1, 2 что соответствует записям "с 8.00 до 9.00" и "9.00 до 10.00" в таблице TimeRange. Листинг:
например: звонит клиент и говорит в какой день и на какое время хочет записаться, Администратор отмечает что в этот день и в это время придет этот клиент. далее надо вывести отчет что занято в дне --------------------
Люди не будьте свиньями, Бросайте мусор в урны. |
||||
|
|||||
Zloxa |
|
||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
для этого примера хорош б был индекс на пару (date,TimeID). Если нужно не поодноу дню.. лучше заветси табличку с каленадрем, подставлять ее во второй запрос вместо подзапроса dt. Если табличку создать нельзя, можно выкрутиться вместо подзапроса dt сделать подзапрос (select distinct date from TimeRange). Но надо понимать что время выполнение запроса будет расти линейно к количеству записей. Это сообщение отредактировал(а) Zloxa - 15.9.2011, 12:27 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||
|
|||||
Date |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.3.2006 Где: Алматы Репутация: нет Всего: 3 |
Zloxa, то что надо!
Добавлено через 19 секунд Спасибо большое! Добавлено через 14 минут и 25 секунд Zloxa, немного переделал запрос, теперь вообще то что надо...
Спасибо еще раз. --------------------
Люди не будьте свиньями, Бросайте мусор в урны. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |