|
Запрос по периодам | ☑ | ||
|---|---|---|---|---|
|
0
Михей
08.11.12
✎
01:05
|
Хеллоу.
Есть таблица: ДатаНачала ДатаОкончания 07.11.2012 14.11.2012 30.10.2012 21.11.2012 29.10.2012 05.12.2012 Задание: Получить из нее непересекающиеся периоды запросом. Т.е. получить такой результат. ДатаНачала ДатаОкончания 29.10.2012 05.12.2012 Спасибо. |
|||
|
1
alexei366
08.11.12
✎
01:08
|
Ну типо первые 1, сортировка по первому полю убывание, по второй сортировка на возрастание
|
|||
|
2
alexei366
08.11.12
✎
01:10
|
Ой блин туплю, придётся тебе соединять её саму на себя или агрегатные функции использовать min для первой и max для второй
|
|||
|
3
Михей
08.11.12
✎
01:11
|
(2) пробовал так, шото не получается
|
|||
|
4
alexei366
08.11.12
✎
01:12
|
Так ещё раз задачу напомни, всмысле не пересекающиеся?
|
|||
|
5
Михей
08.11.12
✎
01:16
|
(4) если пронумеровать записи
ДатаНачала ДатаОкончания 1) 07.11.2012 14.11.2012 2) 30.10.2012 21.11.2012 3) 29.10.2012 05.12.2012 то 1) и 2) входят в 3) поэтому их нужно исключить из результата запроса |
|||
|
6
alexei366
08.11.12
✎
01:20
|
Блин так то пока на ум приходит только со вложенными запросами, типа для каждой строки делаешь вложенный запрос где считаешь количество периодов в которые входит данная строка, и в итоге выводишь только те где количество 0
|
|||
|
7
alexei366
08.11.12
✎
01:22
|
а для бытроты надо во вложенном вообще сделать ПЕРВЫЕ 1, какая разница мы всеравно фильтруем где 0
|
|||
|
8
Михей
08.11.12
✎
01:23
|
(6) о, вариант, сча опробую
|
|||
|
9
Classic
08.11.12
✎
01:32
|
(6)Зачем там вложенные запросы? Обычное левое соединение по условию вложенности и ГДЕ Есть NULL
|
|||
|
10
alexei366
08.11.12
✎
01:34
|
Ну да,наверно быстрее будет, я тож ща так подумал
|
|||
|
11
Jaap Vduul
08.11.12
✎
01:38
|
Только соединение с самим собой исключить
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |