Запрос помогите пожалуйста, есть 2 разных документа по одному документу основанию, как выбрать первые по дате через Объединить все

1. egorover 113 28.08.19 10:32 Сейчас в теме
есть 2 разных документа которые вводятся по одному документу основанию, как выбрать первые по дате через Объединить все

(ВЫБРАТЬ
		CRM_Взаимодействие.Ссылка КАК ВзаимодействиеПоВзаимодействиям,
		CRM_Взаимодействие.ДокументОснование.Ссылка КАК ДокументОснование,
		CRM_Взаимодействие.ПлановаяДата КАК ДатаДокумента
	ИЗ
		Документ.CRM_Взаимодействие КАК CRM_Взаимодействие
	ГДЕ
		НЕ CRM_Взаимодействие.ПометкаУдаления
	{ГДЕ
		(CRM_Взаимодействие.ПлановаяДата МЕЖДУ &НачалоПериода И &КонецПериода)}
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ 
		CRM_Взаимодействие.Объект,
		CRM_Взаимодействие.CRM_Интерес.Ссылка,
		
		CRM_Взаимодействие.Дата
	ИЗ
		РегистрСведений.CRM_ЖурналДокументов КАК CRM_Взаимодействие
	ГДЕ
		CRM_Взаимодействие.ГлавнаяЗапись
		И НЕ CRM_Взаимодействие.Объект.ПометкаУдаления
		И CRM_Взаимодействие.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. user623969_dusa 28.08.19 12:28 Сейчас в теме
(1) проще это сделать через соединение и группировкой максимум получишь максимальный второй документ

соединение по ссылка = основание.ссылка
во втором запросе выбрать максимальная дата
получаешь строку документ - максимальная дата второго документа
соединяешь по максимальной дате - получаешь полные данные о втором документе
для самостоятельной работы исключить задвоение когда второй документ может быть записан в одну дату
2. egorover 113 28.08.19 10:36 Сейчас в теме
Скажем так, - по одному ДокументуОснованию может быть создано много документов 2 типов, получить необходимо только одну строку, с одним ДокументомОснованием и первым по дате введенным документом из 2 типов.
3. egorover 113 28.08.19 10:51 Сейчас в теме
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
4. VmvLer 28.08.19 10:57 Сейчас в теме
Пронумеруйте результирующую таблицу посредством Автономерзаписи() согласно критериям вашего порядка и обирайте первых
6. egorover 113 28.08.19 12:03 Сейчас в теме
(4) нигде не найду примеры Автономерзаписи()
5. nomad_irk 76 28.08.19 11:04 Сейчас в теме
Вот уже половина решения.
Сформируйте таблицу, в которой будут моменты времени Документов Тип1 и Тип2, сверните ее по документу-основание с агрегацией вида МАКСИМУМ для момента времени .
После соединяйте таблицу документов-оснований с этой таблицей + с таблицами документов тип1 и тип2 по равенству ДокТип1.ДокументОснование = ДокументыОснование.ссылка И
ДокТип1.МоментВремени = ТаблицаПоследнихДокументов.МоментВремени.
7. egorover 113 28.08.19 12:04 Сейчас в теме
(5) У меня запрос в СКД, как свертку делать?
9. nomad_irk 76 28.08.19 12:56 Сейчас в теме
Это ж обычный запрос, следовательно СГРУППИРОВАТЬ ПО
10. alekshihanov 29.08.19 10:38 Сейчас в теме
ВЫБРАТЬ ДокТип1.Ссылка, ДокТип1.ДокументОснование, ДокТип1.МоментВремени Из Документ.ДокТипа1 КАК ДокТип1
ПОМЕСТИТЬ ВТ_Документы

ОБЪЕДИНИТЬ

ВЫБРАТЬ ДокТип2.Ссылка, ДокТип2.ДокументОснование, ДокТип2.МоментВремени Из Документ.ДокТипа2 КАК ДокТип2
;

ВЫБРАТЬ Доки.Ссылка, Доки.ДокументОснование
ИЗ ВТ_Документы Доки
СОЕДИНЕНИЕ (
ВЫБРАТЬ МАКСИМУМ(МоментВремени) КАК МоментВремени
ИЗ ВТ_Документы СГРУППИРОВАТЬ ПО ДокументОснование
) Максимумы ПО Максимумы.МоментВремени = Доки.МоментВремени
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот