Дублирование количество в строках в запросе.

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

Все более менее хорошо, правда не попадает сюда в строку уведомление, и дублируется количество, можно ли как то в запросе сделать если серия допустим в другом документ отсутствует то количество равно 0?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. -AI- 02.02.24 15:58 Сейчас в теме
1) количество дублируется потому что оно в колде дублируется...

2) если нужно что бы было количество=0 когда в другом справочнике нет строки, тогда
ВЫБОР
КОГДА ВТ_Уведомления.Количество Есть NULL
ТОГДА 0
ИНАЧЕ ВТ_Отпуска.Количество
КОНЕЦ КАК КоличествоОтпуска


как то так...
Оставьте свое сообщение

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