Как свернуть таблицу (строки) в запросе?
Была такая задача....
Задачу необходимо реализовать в Консоли запросов.
Необходимо вывести по каждому физическому лицу информацию о его состоянии в виде таблицы со следующими колонками: Физическое лицо, Состояние, Дата начала состояния, Дата окончания состояния.
(В запросе не использовать параметры).
По сути осталось схлопнуть строки в соответствующими датами....
(Ниже скрины результата запроса и то ,что надо в идеале)+ база !!!
Стартую с этого запроса...........
Задачу необходимо реализовать в Консоли запросов.
Необходимо вывести по каждому физическому лицу информацию о его состоянии в виде таблицы со следующими колонками: Физическое лицо, Состояние, Дата начала состояния, Дата окончания состояния.
(В запросе не использовать параметры).
По сути осталось схлопнуть строки в соответствующими датами....
(Ниже скрины результата запроса и то ,что надо в идеале)+ база !!!
Стартую с этого запроса...........
ВЫБРАТЬ
СостоянияФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
СостоянияФизическихЛиц.Состояние КАК Состояние,
СостоянияФизическихЛиц.Период КАК Период,
МИНИМУМ(ДОБАВИТЬКДАТЕ(СостоянияФизическихЛиц1.Период, СЕКУНДА, -1)) КАК Период1
ИЗ
РегистрСведений.СостоянияФизическихЛиц КАК СостоянияФизическихЛиц
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияФизическихЛиц КАК СостоянияФизическихЛиц1
ПО СостоянияФизическихЛиц.ФизическоеЛицо = СостоянияФизическихЛиц1.ФизическоеЛицо
И СостоянияФизическихЛиц.Период < СостоянияФизическихЛиц1.Период
СГРУППИРОВАТЬ ПО
СостоянияФизическихЛиц.ФизическоеЛицо,
СостоянияФизическихЛиц.Состояние,
СостоянияФизическихЛиц.Период
УПОРЯДОЧИТЬ ПО
Период
ПоказатьПрикрепленные файлы:
База.dt
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Пример использования временных таблиц в запросах (8.2)
- Минимализмы 2
- По следам код-ревью
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
"Отрезок1" КАК Ссылка,
ДАТАВРЕМЯ(2021, 10, 1) КАК ДатаНачала,
ДАТАВРЕМЯ(2021, 10, 2) КАК ДатаКонца,
"+" КАК Аналитика1
ПОМЕСТИТЬ мТаб
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 2),
ДАТАВРЕМЯ(2021, 10, 5),
"+"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 5),
ДАТАВРЕМЯ(2021, 10, 6),
"+"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 6),
ДАТАВРЕМЯ(2021, 10, 7),
"+"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 7),
ДАТАВРЕМЯ(2021, 10, 9),
"+"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 5),
ДАТАВРЕМЯ(2021, 10, 8),
"-"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 22),
ДАТАВРЕМЯ(2021, 10, 25),
"+"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок1",
ДАТАВРЕМЯ(2021, 10, 25),
ДАТАВРЕМЯ(2021, 10, 26),
"+"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Отрезок2",
ДАТАВРЕМЯ(2021, 10, 1),
ДАТАВРЕМЯ(2021, 10, 7),
"+"
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Таб.Ссылка КАК Ссылка,
Таб.ДатаНачала КАК НачалоДуги,
Таб.ДатаКонца КАК КонецДуги,
Таб.Аналитика1
ПОМЕСТИТЬ ЗамыканияДлины1
ИЗ
мТаб КАК Таб
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПерваяДуга.НачалоДуги,
ВтораяДуга.КонецДуги,
ВтораяДуга.Ссылка,
ВтораяДуга.Аналитика1
ПОМЕСТИТЬ ЗамыканияДлины2
ИЗ
ЗамыканияДлины1 КАК ПерваяДуга
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины1 КАК ВтораяДуга
ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
И ПерваяДуга.Ссылка = ВтораяДуга.Ссылка
И ПерваяДуга.Аналитика1 = ВтораяДуга.Аналитика1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Таб.ДатаНачала,
Таб.ДатаКонца,
Таб.Ссылка,
Таб.Аналитика1
ИЗ
мТаб КАК Таб
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПерваяДуга.НачалоДуги,
ВтораяДуга.КонецДуги,
ВтораяДуга.Ссылка,
ВтораяДуга.Аналитика1
ПОМЕСТИТЬ ЗамыканияДлины4
ИЗ
ЗамыканияДлины2 КАК ПерваяДуга
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины2 КАК ВтораяДуга
ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
И ПерваяДуга.Ссылка = ВтораяДуга.Ссылка
И ПерваяДуга.Аналитика1 = ВтораяДуга.Аналитика1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Таб.ДатаНачала,
Таб.ДатаКонца,
Таб.Ссылка,
Таб.Аналитика1
ИЗ
мТаб КАК Таб
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПерваяДуга.НачалоДуги,
ВтораяДуга.КонецДуги,
ВтораяДуга.Ссылка,
ВтораяДуга.Аналитика1
ПОМЕСТИТЬ ЗамыканияДлины8
ИЗ
ЗамыканияДлины4 КАК ПерваяДуга
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины4 КАК ВтораяДуга
ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
И ПерваяДуга.Ссылка = ВтораяДуга.Ссылка
И ПерваяДуга.Аналитика1 = ВтораяДуга.Аналитика1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
Таб.ДатаНачала,
Таб.ДатаКонца,
Таб.Ссылка,
Таб.Аналитика1
ИЗ
мТаб КАК Таб
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗамыканияДлины8.НачалоДуги КАК Предок,
МАКСИМУМ(ЗамыканияДлины8.КонецДуги) КАК Потомок,
ЗамыканияДлины8.Ссылка,
ЗамыканияДлины8.Аналитика1
ПОМЕСТИТЬ м1
ИЗ
ЗамыканияДлины8 КАК ЗамыканияДлины8
ГДЕ
ЗамыканияДлины8.НачалоДуги <> ЗамыканияДлины8.КонецДуги
СГРУППИРОВАТЬ ПО
ЗамыканияДлины8.Ссылка,
ЗамыканияДлины8.НачалоДуги,
ЗамыканияДлины8.Аналитика1
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МИНИМУМ(м1.Предок) КАК Предок,
м1.Потомок,
м1.Ссылка,
м1.Аналитика1
ИЗ
м1 КАК м1
СГРУППИРОВАТЬ ПО
м1.Ссылка,
м1.Потомок,
м1.Аналитика1
Показать
Попробуйте такой запрос
Выбрать
Рег.ФизическоеЛицо КАК ФизическоеЛицо,
Рег.Состояние КАК Состояние,
Рег.Период КАК Период как Начало,
АВТОНОМЕРЗАПИСИ() как Номер
Поместить Таб
из
РегистрСведений.СостоянияФизическихЛиц КАК Рег
Упорядочить по
1,3
;
ВЫБРАТЬ
Рег1.*,
Рег2.Период как Окончание
ИЗ
Таб Рег1
ЛЕВОЕ СОЕДИНЕНИЕ Таб Рег2
ПО Рег1.ФизическоеЛицо = Рег2.ФизическоеЛицо
И Рег1.Номер = Рег2.Номер + 1
Упорядочить по
1,3
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот