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