|
0
alexsergeevatmista
27.11.25
✎
16:29
|
Есть две таблицы - левая и правая, в обеих есть одинаковые колонки "период, партнер, номенклатура, цена", но в левой ещё есть регистратор. Строки совпадают по первым трём полям, кроме цены. Выбираю всё из левой и хочу сделать так, чтобы для совпадающих строк (по первым трём полям) цена бралась из правой таблицы, иначе из левой. Как этого добиться?
Пытался через естьnull или отрицание условий в соединении, но не получается.
Вот запрос, который есть сейчас. Естественно, всё берёт из левой и совпадающие из правой.
ВЫБРАТЬ
ВТ_МаксЦеныБезУчетаУпаковок.ПериодМесяц КАК ПериодМесяц,
ВТ_МаксЦеныБезУчетаУпаковок.Партнер КАК Партнер,
ВТ_МаксЦеныБезУчетаУпаковок.Номенклатура КАК Номенклатура,
ВЫБОР
КОГДА ВТ_МаксЦеныБезУчетаУпаковок.ПериодМесяц = ВТ_ЧислителиНоменклатуры.ПериодМесяц
И ВТ_МаксЦеныБезУчетаУпаковок.Партнер = ВТ_ЧислителиНоменклатуры.Партнер
И ВТ_МаксЦеныБезУчетаУпаковок.Номенклатура = ВТ_ЧислителиНоменклатуры.Номенклатура
ТОГДА ВТ_ЧислителиНоменклатуры.Цена
ИНАЧЕ ВТ_МаксЦеныБезУчетаУпаковок.Цена
КОНЕЦ КАК Цена,
ВТ_МаксЦеныБезУчетаУпаковок.Регистратор КАК Регистратор
ПОМЕСТИТЬ ВТ_МаксЦеныПоМесяцамФинал
ИЗ
ВТ_МаксЦеныБезУчетаУпаковок КАК ВТ_МаксЦеныБезУчетаУпаковок
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЧислителиНоменклатуры КАК ВТ_ЧислителиНоменклатуры
ПО (ВТ_МаксЦеныБезУчетаУпаковок.ПериодМесяц = ВТ_ЧислителиНоменклатуры.ПериодМесяц)
И (ВТ_МаксЦеныБезУчетаУпаковок.Партнер = ВТ_ЧислителиНоменклатуры.Партнер)
И (ВТ_МаксЦеныБезУчетаУпаковок.Номенклатура = ВТ_ЧислителиНоменклатуры.Номенклатура)
СГРУППИРОВАТЬ ПО
ВТ_МаксЦеныБезУчетаУпаковок.ПериодМесяц,
ВТ_МаксЦеныБезУчетаУпаковок.Партнер,
ВТ_МаксЦеныБезУчетаУпаковок.Номенклатура,
ВТ_МаксЦеныБезУчетаУпаковок.Цена,
ВТ_МаксЦеныБезУчетаУпаковок.Регистратор,
ВЫБОР
КОГДА ВТ_МаксЦеныБезУчетаУпаковок.ПериодМесяц = ВТ_ЧислителиНоменклатуры.ПериодМесяц
И ВТ_МаксЦеныБезУчетаУпаковок.Партнер = ВТ_ЧислителиНоменклатуры.Партнер
И ВТ_МаксЦеныБезУчетаУпаковок.Номенклатура = ВТ_ЧислителиНоменклатуры.Номенклатура
ТОГДА ВТ_ЧислителиНоменклатуры.Цена
ИНАЧЕ ВТ_МаксЦеныБезУчетаУпаковок.Цена
КОНЕЦ
;
|
|