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