- Автор темы
- #1
Есть база номеров с указанными занятых периодов с [startData] - по [endData]
------------------------------------------
| number | startData | endData |
------------------------------------------
| 1 | 14-08-2013 | 17-08-2013 |
| 1 | 21-09-2013 | 27-09-2013 |
| 2 | 18-08-2013 | 23-08-2013 |
------------------------------------------
Необходимо вывести номера которые свободны в указанный период.
Пример периода: 14.08.2013 - 16.08.2013
Помогите создать запрос без использования массива.
Даты в базе в формате yyyy-mm-dd.
Написал чтобы было понятно. Вывести все номера.
Пример запросов:
Если необходим период: 14.08.2013 - 16.08.2013 то запрос должен вывести: 2
Если необходим период: 25.08.2013 - 02.09.2013 то запрос должен вывести: 1 и 2
Пример запроса:
Нужен номер свободный с 25.08.2013 по 02.09.2013
Согласно данным из базы, номер 1 и 2 свободны в данный период.
номер 1 занят с 14-08-2013 по 17-08-2013 и с 21-09-2013 по 27-09-2013
запрос
startData <= 14.08.2013 OR endData >= 16.08.2013
не выдаст номер 1
условие запроса должно выполнятся по всем периодам одного номера.
UPD:
Спасибо, хорошее решение:
Для просмотра ссылки Войдиили Зарегистрируйся
------------------------------------------
| number | startData | endData |
------------------------------------------
| 1 | 14-08-2013 | 17-08-2013 |
| 1 | 21-09-2013 | 27-09-2013 |
| 2 | 18-08-2013 | 23-08-2013 |
------------------------------------------
Необходимо вывести номера которые свободны в указанный период.
Пример периода: 14.08.2013 - 16.08.2013
Помогите создать запрос без использования массива.
Даты в базе в формате yyyy-mm-dd.
Написал чтобы было понятно. Вывести все номера.
Пример запросов:
Если необходим период: 14.08.2013 - 16.08.2013 то запрос должен вывести: 2
Если необходим период: 25.08.2013 - 02.09.2013 то запрос должен вывести: 1 и 2
Пример запроса:
Нужен номер свободный с 25.08.2013 по 02.09.2013
Согласно данным из базы, номер 1 и 2 свободны в данный период.
номер 1 занят с 14-08-2013 по 17-08-2013 и с 21-09-2013 по 27-09-2013
запрос
startData <= 14.08.2013 OR endData >= 16.08.2013
не выдаст номер 1
условие запроса должно выполнятся по всем периодам одного номера.
UPD:
Спасибо, хорошее решение:
Для просмотра ссылки Войди
Последнее редактирование модератором: