0

私は4つのテーブルを持っています:

  1. 3 月に sth (投稿または返信) を行ったユーザーのリストを含むもの (フィールド email1)
  2. 1月に作成されたユーザーの返信を含むもの(いくつかのフィールドですが、Mailfrom_Addressを使用する必要があります)
  3. 2月に返信があった別のもの(いくつかのフィールドですが、Mailfrom_Addressを使用する必要があります)
  4. もう 1 つは 1 月、2 月、3 月のユーザーの投稿です (このテーブルには email1 があります)

3 月に sth を開始したテーブル 1 からユーザーを取得する必要があります。これは、テーブル 2 またはテーブル 3 またはテーブル 4 にあるユーザーをテーブル 1 から除外する必要があることを意味します (ただし、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) にはないため、これを行う方法がわかりません。

これを 1 つの stp だけで行い、最初に 1 月と 2 月のみのリストのテーブルを作成したくありません。アイデアを教えてください。

ありがとう!!!!:D:D:D

4

1 に答える 1

2

PROC SQLはおそらくこれに適しています...

proc sql ;
  テーブル lib.all_emails_march_start を次のように作成します
  選択する *
  lib.all_emails_march から
  ユーザーが含まれていない場所 (lib.replies_ene_2 から個別のユーザーを選択)
    ユーザーが含まれていない (lib.replies_feb_2 から別のユーザーを選択)
    およびユーザーが含まれていません(lib.listings_5から個別のユーザーを選択してください
                    where anomes in ('2014-01', '2014-02'))
  ;
終了する ;
于 2014-04-16T14:38:12.813 に答える