|
Вывод дат
| ☑ |
0
SmoKIE
25.03.22
✎
16:04
|
Добрый день, я только учусь 1С, поэтому могу чего-то не знать
Суть в чем, есть таблица значений с одним столбцом "Дата". В этом столбце выводиться значения, например:
01.01.2022
05.01.2022
09.01.2022
13.01.2022
И надо через запрос прогнать эту таблицу значений и вывести результат в два столбца в виде периодов между датами, например получить должны:
01.01.2022 | 04.01.2022
05.01.2022 | 08.01.2022
09.01.2022 | 12.01.2022
13.01.2022 |
В первом столбце по сути ничего не меняется, а вот во второй уже меняется на -1 день и начинается со второго значения
Пробовал создавать 2 пакета запросов и связывать левым соединением, но не достиг желаемого результата, значения дублируются
Может у кого мысли какие есть? Логикой можете подсказать)
|
|
1
acht
25.03.22
✎
16:20
|
Левое соединение самим с собой по дате больше, выбор минимума, чтобы получить ближайшее и минус день чтобы получить конец периода
|
|
2
Владушка
25.03.22
✎
16:30
|
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ.ДатаНачала КАК ДатаНачала,
ДОБАВИТЬКДАТЕ(ВТ.ДатаНачала, ДЕНЬ, -1) КАК ДатаОкончания
ПОМЕСТИТЬ Вт2
ИЗ
ВТ КАК ВТ
СГРУППИРОВАТЬ ПО
ВТ.ДатаНачала,
ДОБАВИТЬКДАТЕ(ВТ.ДатаНачала, ДЕНЬ, -1)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ.ДатаНачала КАК ДатаНачала,
МИНИМУМ(Вт2.ДатаОкончания) КАК ДатаОкончания
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО ВТ.ДатаНачала < Вт2.ДатаОкончания
СГРУППИРОВАТЬ ПО
ВТ.ДатаНачала
|
|
3
acht
25.03.22
✎
16:41
|
(2) А теперь тоже самое, но одним запросом
|
|
4
SmoKIE
25.03.22
✎
16:42
|
Всем спасибо, у меня получился желаемый результат. Всего то надо было сгруппировать по "МИНИМУМ"
Спасибо за код:)
Но я своим справился, за подсказки МЕГА благодарность ;)
|
|
5
acht
25.03.22
✎
16:45
|
(4) > группировать по "МИНИМУМ"
Эт зачем?
|
|