【发布时间】:2014-04-16 14:26:16
【问题描述】:
我有 4 张桌子:
- 一个包含在 3 月份做了某事(发布或回复)的用户列表(字段 email1)
- 一个包含 1 月用户的回复(几个字段,但我需要使用 Mailfrom_Address)
- 另一个是在 2 月做出的回复(几个字段,但我需要使用 Mailfrom_Address)
- 另外一个发布了 1 月、2 月和 3 月的用户(此表包含电子邮件 1)
我需要从 3 月份开始做某事的表 1 中获取用户。这意味着我需要从表 1 中排除表 2 或表 3 或表 4 中的用户(但仅适用于 1 月和 2 月……这是我的问题:表 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
【问题讨论】:
-
听起来您应该在
PROC SQL中而不是在数据步骤中执行此操作,或者在数据步骤中使用不同的方法。如果不使用多个数据步骤,合并就不能使用多个连接条件。
标签: merge sas conditional no-match