Объединить 2 запроса без повторения строк

1. Barok 12.04.21 10:28 Сейчас в теме
Здравствуйте. Пытаюсь объединить 2 запроса в один по остаткам товаров и ождидаемому приходу
Таб = ЭтаФорма.ОстаткиНаСкладах;
	Таб.Очистить();

	Запрос = Новый Запрос;
	Запрос.Текст = 
		   "ВЫБРАТЬ
		   |	ТоварыНаСкладахОстатки.Склад КАК Склад,
		   |	ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ВНаличии,
		   |	ЕСТЬNULL(ТоварыНаСкладахОстатки.КОтгрузкеОстаток, 0) КАК Отгружается,
		   |	ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК СвободныйОстаток,
		   |	ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток, 0) КАК ВРезерве,
		   |	0 КАК Заказано,
		   |	NULL КАК ДатаПоступления
		   |ПОМЕСТИТЬ ВТ_Товары
		   |ИЗ
		   |	РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки
		   |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Дата, Номенклатура = &Номенклатура) КАК СвободныеОстаткиОстатки
		   |		ПО ТоварыНаСкладахОстатки.Склад = СвободныеОстаткиОстатки.Склад
		   |
		   |СГРУППИРОВАТЬ ПО
		   |	ТоварыНаСкладахОстатки.Склад,
		   |	ТоварыНаСкладахОстатки.ВНаличииОстаток,
		   |	ТоварыНаСкладахОстатки.КОтгрузкеОстаток,
		   |	СвободныеОстаткиОстатки.ВНаличииОстаток,
		   |	СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток
		   |
		   |ОБЪЕДИНИТЬ
		   |
		   |ВЫБРАТЬ
		   |	ЗаказыПоставщикам.Склад,
		   |	0,
		   |	0,
		   |	0,
		   |	0,
		   |	ЕСТЬNULL(ЗаказыПоставщикам.Заказано, 0),
		   |	ЕСТЬNULL(ЗаказыПоставщикам.Регистратор.ДатаПоступления, NULL)
		   |ИЗ
		   |	РегистрНакопления.ЗаказыПоставщикам КАК ЗаказыПоставщикам
		   |ГДЕ
		   |	ЗаказыПоставщикам.Номенклатура = &Номенклатура
		   |
		   |СГРУППИРОВАТЬ ПО
		   |	ЗаказыПоставщикам.Склад,
		   |	ЕСТЬNULL(ЗаказыПоставщикам.Заказано, 0),
		   |	ЕСТЬNULL(ЗаказыПоставщикам.Регистратор.ДатаПоступления, NULL)
		   |;
		   |
		   |////////////////////////////////////////////////////////////­////////////////////
		   |ВЫБРАТЬ
		   |	ВТ_Товары.Склад КАК Склад,
		   |	СУММА(ВТ_Товары.ВНаличии) КАК ВНаличии,
		   |	СУММА(ВТ_Товары.Отгружается) КАК Отгружается,
		   |	СУММА(ВТ_Товары.СвободныйОстаток) КАК СвободныйОстаток,
		   |	СУММА(ВТ_Товары.ВРезерве) КАК ВРезерве,
		   |	СУММА(ВТ_Товары.Заказано) КАК Заказано,
		   |	ЕСТЬNULL(ВТ_Товары.ДатаПоступления, NULL) КАК ДатаПоступления
		   |ИЗ
		   |	ВТ_Товары КАК ВТ_Товары
		   |
		   |СГРУППИРОВАТЬ ПО
		   |	ВТ_Товары.Склад,
		   |	ВТ_Товары.ДатаПоступления";
	Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
	Запрос.УстановитьПараметр("Дата",ТекущаяДата());
	
	Выборка = Запрос.Выполнить().Выбрать();
		
	Пока Выборка.Следующий() Цикл
		Стр = Таб.Добавить();
		Стр.Склад = Выборка.Склад.Наименование;
		Стр.ВНаличии = Выборка.ВНаличии;
		Стр.Резерв = Выборка.ВРезерве;
		Стр.Отгружается = Выборка.Отгружается;
		СТр.Доступно = Число(Выборка.СвободныйОстаток) - Число(Выборка.ВРезерве);
		Стр.КОтгрузке = Стр.ВНаличии - Стр.Доступно - Стр.Отгружается;
		Стр.Ожидается = Выборка.Заказано;
		Если Выборка.Заказано > 0 Тогда
			Стр.ДатаПоступления = Выборка.ДатаПоступления;
		КонецЕсли;
	КонецЦикла;
Показать


В итоге получается вот такой результат
Мне же необходимо, чтобы результат по одному и тому же складу был в одну строку. Если же все делаю без "ДатаПоступления", тогда всё нормально. Подскажите, как правильно организовать запрос, чтобы не было дубликатов по одному и тому же складу?
По теме из базы знаний
Найденные решения
3. nomad_irk 76 13.04.21 08:17 Сейчас в теме
(1) Это что за альтернативная логика?

ЕСТЬNULL(ЗаказыПоставщикам.Регистратор.ДатаПоступления, NULL)


У вас не получится сделать в одну строку с ДатаПоступления, т.к. эта дата будет разной.
Либо совсем убирать колонку, либо агрегировать значение Максимум
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 76 13.04.21 08:17 Сейчас в теме
(1) Это что за альтернативная логика?

ЕСТЬNULL(ЗаказыПоставщикам.Регистратор.ДатаПоступления, NULL)


У вас не получится сделать в одну строку с ДатаПоступления, т.к. эта дата будет разной.
Либо совсем убирать колонку, либо агрегировать значение Максимум
4. Barok 13.04.21 11:22 Сейчас в теме
(3)
Да, спасибо. С Максимум заработало.
2. -AI- 13.04.21 08:01 Сейчас в теме
картинко не прогрузилась

Зачем группируешь ещё по ДатаПоступления, если нужно только в разрезе Склад?
Оставьте свое сообщение

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