0

我有 4 张桌子:

  1. 一个包含在 3 月做了某事(发布或回复)的用户列表(字段 email1)
  2. 一个带有 jan 用户的回复(几个字段,但我需要使用 Mailfrom_Address)
  3. 另一个是在 2 月做出的​​回复(有几个字段,但我需要使用 Mailfrom_Address)
  4. 另一个发布 1 月、2 月和 3 月的用户(此表有 email1)

我需要从 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

4

1 回答 1

2

PROC SQL 可能更适合这个...

过程 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'))
  ;
辞职 ;
于 2014-04-16T14:38:12.813 回答