Запрос к периодическому РС - свернуть в таблицу "начало-окончание" #683721


#0 by mikhailovaew
ПРошу подсказать, как правильно написать запрос к периодическому регистру сведений, чтобы на выходе получалась таблица вида Измерение - Начало - Окончание. Помещаю движения регистра в ВТ, соединяю ее с собой по неравенству периода - получаются лишние записи. То есть такой текст: при наличии в регистре 3 записей по сотруднику (перемещения 01.04, 01.08, 01.10) дает 3 строки: 3) 01.08-01.10 а нужно 2: 1) 01.04-01.08 Как правильно составить запрос?
#1 by Sabbath
сгруппировать по минимум(начало) максимум(окончание)
#2 by Sabbath
+ а, не так задачу понял, думал одна строка нужна
#3 by mikhailovaew
нужно разбить РС на периоды
#4 by Rovan
ВТ1.Сотрудник,     ВТ1.Подразделение,
#5 by Sabbath
тогда можно сделать два таких запроса в одном группировка два раза по минимум в другом два раза по максимуму и объединить их
#6 by mikhailovaew
тогда получается так:
#7 by Sabbath
не прокатит с другими данными
#8 by mikhailovaew
не совсем поняла, не могли бы Вы привести полный текст запроса?
#9 by mikhailovaew
оно и с текущими не прокатывает, не те периоды получаются...
#10 by Rie
Посмотри там - аналогичная задача.
#11 by Ненавижу 1С
ВТ1.Сотрудник,     ВТ1.Подразделение,     ВТ1.Период
#12 by mikhailovaew
да, то, что нужно! спасибо!
#13 by Sabbath
ВЫБРАТЬ     РС.Период, ОБЪЕДИНИТЬ ВЫБРАТЬ     ВТ.Сотрудник,     ВТ.Подразделение
#14 by mikhailovaew
спасибо Вам за помощь. Решение мне пока нравится больше, оно на 2 запроса короче, его работоспособность я уже проверила. Есть ситуации, когда Ваше решение отработает лучше?
#15 by Sabbath
написал как Не прокатит если будет вот так 01.04-01.08 01.04-01.05 01.04-01.10 01.05-01.08 01.05-01.10 01.08-01.10 в результате будет три строки 01.04-01.08 01.05-01.08 01.08-01.10 Я так понимаю надо две строки первую и последнюю
#16 by Sabbath
+ Перечитал задачу, сплю. Задача не в этом и правильно
#17 by mikhailovaew
да, я прогнала на тестовых данных , получила как раз что надо: 2) 01.08-01.10 3) 01.10-null (что тоже неплохо, хоть в первоначальной постановке не озвучено)
#18 by ProgAL
А зачем лишние соединения. ВЫБРАТЬ     РС.Товар,     РС.Контрагент,
#19 by Sabbath
так ты получишь одну строку, а надо несколько последовательных периодов как бы
#20 by Sabbath
да, я просто понял задачу, что нужен первый и последний период, а нужны и промежуточные. Так что с все ок
#21 by Sabbath
последнюю строку можно отсеять условием не есть Null кстати, если не нужна
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С