Запрос помогите пожалуйста, есть 2 разных документа по одному документу основанию, как выбрать первые по дате через Объединить все
есть 2 разных документа которые вводятся по одному документу основанию, как выбрать первые по дате через Объединить все
(ВЫБРАТЬ
CRM_Взаимодействие.Ссылка КАК ВзаимодействиеПоВзаимодействиям,
CRM_Взаимодействие.ДокументОснование.Ссылка КАК ДокументОснование,
CRM_Взаимодействие.ПлановаяДата КАК ДатаДокумента
ИЗ
Документ.CRM_Взаимодействие КАК CRM_Взаимодействие
ГДЕ
НЕ CRM_Взаимодействие.ПометкаУдаления
{ГДЕ
(CRM_Взаимодействие.ПлановаяДата МЕЖДУ &НачалоПериода И &КонецПериода)}
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
CRM_Взаимодействие.Объект,
CRM_Взаимодействие.CRM_Интерес.Ссылка,
CRM_Взаимодействие.Дата
ИЗ
РегистрСведений.CRM_ЖурналДокументов КАК CRM_Взаимодействие
ГДЕ
CRM_Взаимодействие.ГлавнаяЗапись
И НЕ CRM_Взаимодействие.Объект.ПометкаУдаления
И CRM_Взаимодействие.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) проще это сделать через соединение и группировкой максимум получишь максимальный второй документ
соединение по ссылка = основание.ссылка
во втором запросе выбрать максимальная дата
получаешь строку документ - максимальная дата второго документа
соединяешь по максимальной дате - получаешь полные данные о втором документе
для самостоятельной работы исключить задвоение когда второй документ может быть записан в одну дату
соединение по ссылка = основание.ссылка
во втором запросе выбрать максимальная дата
получаешь строку документ - максимальная дата второго документа
соединяешь по максимальной дате - получаешь полные данные о втором документе
для самостоятельной работы исключить задвоение когда второй документ может быть записан в одну дату
01.01.2019 №1 ДокументТип1 - ДокументОснование №1
02.01.2019 №2 ДокументТип1 - ДокументОснование №2
05.01.2019 №1 ДокументТип2 - ДокументОснование №3
07.01.2019 №3 ДокументТип1 - ДокументОснование №4
09.01.2019 №2 ДокументТип2 - ДокументОснование №5
02.01.2019 №2 ДокументТип1 - ДокументОснование №2
05.01.2019 №1 ДокументТип2 - ДокументОснование №3
07.01.2019 №3 ДокументТип1 - ДокументОснование №4
09.01.2019 №2 ДокументТип2 - ДокументОснование №5
Вот уже половина решения.
Сформируйте таблицу, в которой будут моменты времени Документов Тип1 и Тип2, сверните ее по документу-основание с агрегацией вида МАКСИМУМ для момента времени .
После соединяйте таблицу документов-оснований с этой таблицей + с таблицами документов тип1 и тип2 по равенству ДокТип1.ДокументОснование = ДокументыОснование.ссылка И
ДокТип1.МоментВремени = ТаблицаПоследнихДокументов.МоментВремени.
Сформируйте таблицу, в которой будут моменты времени Документов Тип1 и Тип2, сверните ее по документу-основание с агрегацией вида МАКСИМУМ для момента времени .
После соединяйте таблицу документов-оснований с этой таблицей + с таблицами документов тип1 и тип2 по равенству ДокТип1.ДокументОснование = ДокументыОснование.ссылка И
ДокТип1.МоментВремени = ТаблицаПоследнихДокументов.МоментВремени.
ВЫБРАТЬ ДокТип1.Ссылка, ДокТип1.ДокументОснование, ДокТип1.МоментВремени Из Документ.ДокТипа1 КАК ДокТип1
ПОМЕСТИТЬ ВТ_Документы
ОБЪЕДИНИТЬ
ВЫБРАТЬ ДокТип2.Ссылка, ДокТип2.ДокументОснование, ДокТип2.МоментВремени Из Документ.ДокТипа2 КАК ДокТип2
;
ВЫБРАТЬ Доки.Ссылка, Доки.ДокументОснование
ИЗ ВТ_Документы Доки
СОЕДИНЕНИЕ (
ВЫБРАТЬ МАКСИМУМ(МоментВремени) КАК МоментВремени
ИЗ ВТ_Документы СГРУППИРОВАТЬ ПО ДокументОснование
) Максимумы ПО Максимумы.МоментВремени = Доки.МоментВремени
ПОМЕСТИТЬ ВТ_Документы
ОБЪЕДИНИТЬ
ВЫБРАТЬ ДокТип2.Ссылка, ДокТип2.ДокументОснование, ДокТип2.МоментВремени Из Документ.ДокТипа2 КАК ДокТип2
;
ВЫБРАТЬ Доки.Ссылка, Доки.ДокументОснование
ИЗ ВТ_Документы Доки
СОЕДИНЕНИЕ (
ВЫБРАТЬ МАКСИМУМ(МоментВремени) КАК МоментВремени
ИЗ ВТ_Документы СГРУППИРОВАТЬ ПО ДокументОснование
) Максимумы ПО Максимумы.МоментВремени = Доки.МоментВремени
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот