Имя: Пароль:
1C
1С v8
Запрос по периодам
,
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
Только соединение с самим собой исключить