sas merge nomatch условно только для одной таблицы
У меня есть 4 таблицы:
- один со списком пользователей, которые сделали sth (опубликовать или ответить) в марте (поле email1)
- один с ответами пользователей, сделанными в jan (несколько полей, но мне нужно использовать Mailfrom_Address)
- другой с ответами, сделанными в фев (несколько полей, но мне нужно использовать Mailfrom_Address)
- и другой с публикацией пользователей для jan, feb и march (в этой таблице есть email1)
Мне нужно получить пользователей из таблицы 1, которые начали делать что-то в марте. Это означает, что мне нужно исключить из таблицы 1 пользователей, которые находятся в таблице 2 или таблице 3 или таблице 4 (но только для месяца jan & feb.. и вот моя проблема: это условие над таблицей 4).
Я начал этот код.
data lib.all_emails_march_start (keep= email1);
merge lib.all_emails_march (IN=In1)
lib.replies_ene_2 (rename= (Mailfrom_Address=email1)) (IN=In2)
lib.replies_feb_2 (rename= (Mailfrom_Address=email1)) (IN=In3)
lib.listings_5 where anomes in ('2014-01', '2014-02') (IN=In4);
by email1;
if (In1=1 and In2=0 and In3=0 and In4=0) then output lib.all_emails_march_start;
run;
но условие должно быть только для таблицы 4 (Listings_5), а эта переменная (anomes) отсутствует в других таблицах (1-3), поэтому я не знаю, как это сделать.
Я хотел бы сделать это только в одном STP, а не создавать первую таблицу для списков только с jan и feb. Не могли бы вы дать мне несколько идей?
Спасибо!!!!:D:D:D
1 ответ
Решение
PROC SQL, вероятно, больше подходит для этого...
proc sql; создать таблицу lib.all_emails_march_start как Выбрать * из lib.all_emails_march где пользователь не в (выберите отдельного пользователя из lib.replies_ene_2) и пользователь не в (выберите отдельного пользователя из lib.replies_feb_2) и пользователь не в (выберите отдельного пользователя из lib.listings_5 где аномы в ('2014-01', '2014-02')); уволиться;