Имя: Пароль:
1C
1С v8
Периоды
0 smartu
 
13.03.13
00:29
пример запроса:

ВЫБРАТЬ
   ДАТАВРЕМЯ(2013, 3, 1) КАК Период
ПОМЕСТИТЬ ВТ_ИсходныеДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ДАТАВРЕМЯ(2013, 3, 2)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ДАТАВРЕМЯ(2013, 3, 25)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Начало.Период,
   Конец.Период КАК Период1
ИЗ
   ВТ_ИсходныеДанные КАК Начало
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсходныеДанные КАК Конец
       ПО Начало.Период < Конец.Период

на выходе получается:

Период    Период 1
01.03.2013 0:00:00    02.03.2013 0:00:00
01.03.2013 0:00:00    25.03.2013 0:00:00
02.03.2013 0:00:00    25.03.2013 0:00:00
25.03.2013 0:00:00    


не додумаю какую связь сделать что бы получилось вида

Период    Период 1
01.03.2013 0:00:00    01.03.2013 0:00:00
02.03.2013 0:00:00    25.03.2013 0:00:00
26.03.2013 0:00:00    31.03.2013 0:00:00

?
1 Ksandr
 
13.03.13
00:50
Поясни вот эту строку
01.03.2013 0:00:00    01.03.2013 0:00:00
2 Ksandr
 
13.03.13
00:53
В наборе 1,2,25

А в итоге хочешь 1,1,2,25,26,31
3 smartu
 
13.03.13
00:54
есть три даты в этом примере. необходимо вывести периоды между ними
01.03.2013
02.03.2013
25.03.2013

1- с 01.03.2013 по 01.03.2013
2- с 02.03.2013 по 25.03.2013
3- с 26.03.2013 по 31.03.2013
4 smartu
 
13.03.13
00:56
конец периода = начало периода следующей строки - 1 день
5 Classic
 
13.03.13
00:59
В запросе поменяй

Конец.Период

на
ДОБАВИТЬКДАТЕ(МИНИМУМ(Конец.Период), ДЕНЬ, -1)

Ну и группировку есно
6 Ksandr
 
13.03.13
00:59
ВЫБРАТЬ
   Начало.Период,
   ДОБАВИТЬКДАТЕ(МИНИМУМ(Конец.Период), ДЕНЬ, -1) КАК Период1
ИЗ
   ВТ_ИсходныеДанные КАК Начало
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсходныеДанные КАК Конец
       ПО Начало.Период < Конец.Период
7 smartu
 
13.03.13
01:15
спасибо!