Имя: Пароль:
1C
 
Нужна помощь с запросом по таблице периодов
,
0 ВопросБот
 
06.11.14
10:21
Имеется таблица периодов вида:
01.03.2014 - 03.03.2014
12.05.2014 - 24.05.2014
26.05.2014 - 08.06.2014

Необходимо разбить эти периоды началом и концом месяца:
01.03.2014 - 03.03.2014
03.03.2014 - 31.03.2014
01.04.2014 - 30.04.2014
01.05.2014 - 12.05.2014
12.05.2014 - 24.05.2014
26.05.2014 - 31.05.2014
01.06.2014 - 08.06.2014
08.06.2014 - 30.06.2014

Как это сделать в запросе?
1 МихаилМ
 
06.11.14
10:25
каким образом

из таблицы 1

получились запись в таблице 2
01.06.2014 - 08.06.2014
08.06.2014 - 30.06.2014

?
2 ВопросБот
 
06.11.14
10:31
(1) период первой таблицы 26.05.2014 - 08.06.2014
разбился концом и началом месяца:
26.05.2014 - 31.05.2014 (конец месяца)
01.06.2014 (начало месяца) - 08.06.2014
08.06.2014 - 30.06.2014 (конец месяца)
3 Крошка Ру
 
06.11.14
10:32
(1) Начало-конец месяца добавился
(0)Добавить свою таблицу периодов, с датами начала-конца месяцов, объединить, отсортировать, сформировать новую таблицу периодов
4 ВопросБот
 
06.11.14
10:34
(3) выбрал таблицу периодов НачалоМесяца-КонецМесяца из производственного календаря, объединил с исходной таблицей, отсортировал. Как сформировать?
5 Ёпрст
 
06.11.14
10:35
(0) это 2 столбца с данными или один с диапазоном ?
6 ВопросБот
 
06.11.14
10:36
(5) два столбца с данными
7 kosts
 
06.11.14
10:40
В чем сложность возникла, вроде задача не сложная.
8 Ёпрст
 
06.11.14
10:42
(6)
Выбрать * ИЗ
(

Выбрать
    Табличка.ПервыйСтолбец как ПервыйСтолбец,
    Табличка.ВторойСтолбец как ВторойСтолбец
Из Табличка как Табличка  

Объединить

Выбрать
    НАЧАЛОПЕРИОДА(Табличка.ПервыйСтолбец, МЕСЯЦ),
    Табличка.ПервыйСтолбец
Из Табличка как Табличка  
Где НАЧАЛОПЕРИОДА(Табличка.ПервыйСтолбец, МЕСЯЦ)<>Табличка.ПервыйСтолбец
Объединить
Выбрать
    КОНЕЦПЕРИОДА(Табличка.ВторойСтолбец, МЕСЯЦ),
    Табличка.ВторойСтолбец
Из Табличка как Табличка  
Где КОНЕЦПЕРИОДА(Табличка.ВторойСтолбец, МЕСЯЦ)<>Табличка.ВторойСтолбец )как Табличка
Упорядочить По ПервыйСтолбец
9 Ёпрст
 
06.11.14
10:44
Это, вот так переделай (а то копипасте блин)
....
Объединить
Выбрать
   Табличка.ВторойСтолбец,
    КОНЕЦПЕРИОДА(Табличка.ВторойСтолбец, МЕСЯЦ)
10 Ёпрст
 
06.11.14
10:44
в последнем селекте
11 ВопросБот
 
06.11.14
10:52
(8)(9)(10) попробовал, получилось что-то непонятное
12 СвинТуз
 
06.11.14
10:56
регистр расчетов вытеснение сам делает
проверяете правильно ли работает?
13 ВопросБот
 
06.11.14
10:57
(12) это не регистр расчетов
14 kosts
 
06.11.14
10:59
(0) Конвертируй первую таблицу в список дат и уже ими разбивай месяца.
15 Ёпрст
 
06.11.14
11:00
(11) врешь ведь :)
16 Ёпрст
 
06.11.14
11:01
покажи свой текст запроса.
17 kumena
 
06.11.14
11:04
а зачем надо на периоды именно запросом разбивать? по моему это не оптимальный инструмент для этих целей.
18 СвинТуз
 
06.11.14
12:03
(17)
видимо задача при трудоустройстве
не выбирает как решать человек
19 extrim-style
 
06.11.14
16:31
Придумал:
1). выбрал даты ДатаНачала-ДатаОкончания из производственного календаря в одну колонку
2). по совету (14) использовал исходную от первой таблицы - список дат в одну колонку
3). объединил 1) и 2)
4). отсортировал по дате
5). выполнил соединение 4) саму с собой со смещением

Видимо, правильный ответ был еще в (3), но там были периоды и я не догнал.

Но теперь есть одна проблема: в 4) необходимо сделать сортировку, которую нельзя выполнить внутри пакетного запроса. Можно это как то обойти, чтобы не разрывать запрос?
20 extrim-style
 
06.11.14
16:32
всё это эпик-фэйл. я спалилсо).
21 kosts
 
06.11.14
18:08
(20) У тебя раздвоение личности. Надо вылечиться.