Доброго дня уважаемые знатоки! Помогите пожалуйста новичку разобраться с запросом.
1 .Есть документ Выпуск продукции
2. В документе Есть табличная часть Продукция
3. Есть регистр ЦеныНоменклатуры
Необходимо из табличной части документа выбрать все записи, (номенклатура, количество) добавить к ним на дату документа из регистра ЦеныНоменклатуры (цену и вид цены) и вывести все это.
Что я для этого сделал:
в итоге он мне выводит отобранный результат где цена есть, но нет тех строк из документа, для которых НЕТ цены вообще, как можно их сюда вывести?
Что я для этого сделал:
Но во втором случае выводится вся вновь табличная часть, а нужно чтобы был результат первого запроса + те из табличной части для которых цены нет.
Если мое решение имеет место быть, подскажите что поправить, если нет, подскажите свой вариант решения пожалуйста, заранее спасибо.
(в изображении результат 2 запроса)
1 .Есть документ Выпуск продукции
2. В документе Есть табличная часть Продукция
3. Есть регистр ЦеныНоменклатуры
Необходимо из табличной части документа выбрать все записи, (номенклатура, количество) добавить к ним на дату документа из регистра ЦеныНоменклатуры (цену и вид цены) и вывести все это.
Что я для этого сделал:
ВЫБРАТЬ
ВыпускПродукцииПродукция.Номенклатура,
ВыпускПродукцииПродукция.Мест,
ВыпускПродукцииПродукция.Количество,
ВыпускПродукции.Номер,
ВыпускПродукции.Дата,
ЦеныНоменклатуры.ВидЦены,
ЦеныНоменклатуры.Цена
ИЗ
Документ.ВыпускПродукции.Продукция КАК ВыпускПродукцииПродукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции КАК ВыпускПродукции
ПО ВыпускПродукцииПродукция.Ссылка = ВыпускПродукции.Ссылка
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВыпускПродукцииПродукция.Номенклатура = ЦеныНоменклатуры.Номенклатура
ГДЕ
ВыпускПродукции.Ссылка В(&Ссылка)
И ЦеныНоменклатуры.Период <= &Период
Показатьв итоге он мне выводит отобранный результат где цена есть, но нет тех строк из документа, для которых НЕТ цены вообще, как можно их сюда вывести?
Что я для этого сделал:
ВЫБРАТЬ
ВыпускПродукцииПродукция.Номенклатура,
ВыпускПродукцииПродукция.Мест,
ВыпускПродукцииПродукция.Количество,
ВыпускПродукции.Номер,
ВыпускПродукции.Дата,
ЦеныНоменклатуры.ВидЦены,
ЦеныНоменклатуры.Цена
ИЗ
Документ.ВыпускПродукции.Продукция КАК ВыпускПродукцииПродукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции КАК ВыпускПродукции
ПО ВыпускПродукцииПродукция.Ссылка = ВыпускПродукции.Ссылка
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВыпускПродукцииПродукция.Номенклатура = ЦеныНоменклатуры.Номенклатура
ГДЕ
ВыпускПродукции.Ссылка В(&Ссылка)
И ЦеныНоменклатуры.Период <= &Период
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВыпускПродукцииПродукция.Номенклатура,
ВыпускПродукцииПродукция.Мест,
ВыпускПродукцииПродукция.Количество,
ВыпускПродукции.Номер,
ВыпускПродукции.Дата,
NULL,
NULL
ИЗ
Документ.ВыпускПродукции.Продукция КАК ВыпускПродукцииПродукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции КАК ВыпускПродукции
ПО ВыпускПродукцииПродукция.Ссылка = ВыпускПродукции.Ссылка
ГДЕ
ВыпускПродукции.Ссылка В(&Ссылка)
ПоказатьНо во втором случае выводится вся вновь табличная часть, а нужно чтобы был результат первого запроса + те из табличной части для которых цены нет.
Если мое решение имеет место быть, подскажите что поправить, если нет, подскажите свой вариант решения пожалуйста, заранее спасибо.
(в изображении результат 2 запроса)
Прикрепленные файлы:
По теме из базы знаний
- Опять эти запросы...
- Планы запросов - это просто! Разбор оптимизаций запросов PostgreSQL на живых примерах
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Экспертный взгляд на оптимизацию производительности на примере исправления и декомпозиции запроса
- Варианты отладки и оптимизации запросов в 1С
Найденные решения
ВЫБРАТЬ
ВыпускПродукцииПродукция.Номенклатура,
ВыпускПродукцииПродукция.Мест,
ВыпускПродукцииПродукция.Количество,
ВыпускПродукции.Номер,
ВыпускПродукции.Дата,
ЦеныНоменклатуры.ВидЦены,
ЦеныНоменклатуры.Цена
ИЗ
Документ.ВыпускПродукции.Продукция КАК ВыпускПродукцииПродукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции КАК ВыпускПродукции
ПО ВыпускПродукцииПродукция.Ссылка = ВыпускПродукции.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВыпускПродукцииПродукция.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ЦеныНоменклатуры.Период <= &Период
ГДЕ
ВыпускПродукции.Ссылка В(&Ссылка)
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
ВыпускПродукцииПродукция.Номенклатура,
ВыпускПродукцииПродукция.Мест,
ВыпускПродукцииПродукция.Количество,
ВыпускПродукции.Номер,
ВыпускПродукции.Дата,
ЦеныНоменклатуры.ВидЦены,
ЦеныНоменклатуры.Цена
ИЗ
Документ.ВыпускПродукции.Продукция КАК ВыпускПродукцииПродукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыпускПродукции КАК ВыпускПродукции
ПО ВыпускПродукцииПродукция.Ссылка = ВыпускПродукции.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВыпускПродукцииПродукция.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ЦеныНоменклатуры.Период <= &Период
ГДЕ
ВыпускПродукции.Ссылка В(&Ссылка)
Показать
Зачем вам полное соединение? В конструкторе даже галочки грамотно названы, из какой таблицы все строки брать, из какой нет.
К таблице документа ЛЕВЫМ соединением цепляете цены СРЕЗПОСЛЕДНИХ на дату документа. Все условия на левую талицу должны быть не в ГДЕ, а в условиях соединения.
К таблице документа ЛЕВЫМ соединением цепляете цены СРЕЗПОСЛЕДНИХ на дату документа. Все условия на левую талицу должны быть не в ГДЕ, а в условиях соединения.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот