Мне нужно искать данные из одной таблицы и добавлять их в таблицу основных данных на основе условия if: помечены ли данные как отсутствующие. Скажем, таблица поиска содержит страны и порты. В главном файле отсутствуют имена портов, которые необходимо заполнить. Он заполняет их, используя поиск, только если флаг = 1 (он отсутствует).Поиск значений в одной таблице и добавление к набору данных в соответствии с условием IF (MERGE/SQL)?
Эта команда не работает (не заполнит его в & не будет держать набл с флагом = 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;
Вот пример с небольшим количеством данных ...
таблицы перекодировки (3 вары):
LoadPort LoadCountry LoadArea
ARZEW ALGERIA NAF
MASTER (многие вары):
OBS LoadPort LoadCountry LoadArea LPortMiss
1 ALGERIA NAF 1
2 ADELAIDE AUSTRALIA SEOZ 0
Таким образом, он должен заполнить первый обс в MASTER первым оком в LOOKUP (ARZEW) на основании того, что LPortMiss = 1 и LoadCountry и LoadArea равны. В LOOKUP и MASTER есть много общего, но я надеюсь, что это лучше иллюстрирует проблему.
Можете привести пример с некоторыми данными? Кроме того, вы должны вернуться к своему другому вопросу и «принять» ответ, который сработал для вас, как это предлагается в одном из комментариев. Это дает людям стимул отвечать на ваш вопрос. – itzy