Мне нужно найти данные из одной таблицы и добавить их в таблицу основных данных на основе условия if: помечены ли данные как отсутствующие. Скажем, таблица соответствия содержит страны и порты. В главном файле отсутствуют имена портов, которые необходимо заполнить. Он заполняет их, используя поиск, только если flag = 1 (он отсутствует).
Эта команда не работает (не заполнит и не сохранит значения с флагом = 0):
proc sql;
create table data.varswprice1 as
select *
from data.varswprice a left join data.LPortsFill b
on a.LoadCountry = b.LoadCountry and a.LoadArea = b.LoadArea
where LPortMiss = 1;
quit;
Вот пример с небольшим количеством данных ...
Таблица LOOKUP (3 варианта):
LoadPort LoadCountry LoadArea
ARZEW ALGERIA NAF
MASTER (много переменных):
OBS LoadPort LoadCountry LoadArea LPortMiss
1 ALGERIA NAF 1
2 ADELAIDE AUSTRALIA SEOZ 0
Таким образом, он должен заполнить первые obs в MASTER первыми obs в LOOKUP (ARZEW), основываясь на том факте, что LPortMiss = 1 и LoadCountry и LoadArea равны. В LOOKUP и MASTER есть еще много акций, но я надеюсь, что это лучше иллюстрирует проблему.