Мне нужно объединить две таблицы со всеми столбцами в первой таблице (левое внешнее соединение) и только один столбец во второй, если значения в четырех столбцах совпадают.
Другими словами, если четыре столбца совпадают, тогда updatenotice
должно равняться значению во второй таблице (таблица b
). Если один из столбцов не совпадает, не присоединяйте значение второй таблицы.но оставьте updatenotice
как в первой таблице (таблица a
).
Я получаю синтаксическую ошибку в операторе case.
Вот мой код:
proc sql;
create table UseLimit_updates as
select *
from work.updated_mwh as a
left outer join work.archive_dups as b
on a.updatenotice=b.updatenotice
case when a.res_id=b.res_id
and a.limit_start_date=b.limit_start_date
and a.limit_end_date=b.limit_end_date
and a.created_date=b.created_date
then a.updatenotice=b.updatenotice
else a.updatenotice='A'
end;
quit;