Объединить 2 запроса без повторения строк
Здравствуйте. Пытаюсь объединить 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 Тогда
Стр.ДатаПоступления = Выборка.ДатаПоступления;
КонецЕсли;
КонецЦикла;
ПоказатьВ итоге получается вот такой результат
Мне же необходимо, чтобы результат по одному и тому же складу был в одну строку. Если же все делаю без "ДатаПоступления", тогда всё нормально. Подскажите, как правильно организовать запрос, чтобы не было дубликатов по одному и тому же складу?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот