1

完全外部結合を行っている 2 つのテーブルがあります。それらは変数「accsnnum」で結合され、両方が共有します。しかし、私は問題を抱えています。accsnnum は両方のセットに存在する場合にのみ出力されますが、accsnum でグループ化された変数のカウントを比較しているため、両方に存在するかどうかに関係なく出力する必要があります。

説明のために、次のような labtable があります (変数は 2 つしかありません)。

accsnum   lab_lbcount
  A12         3
  A11         5
  A14         7
  A13         5

そして、次のような rslttable (変数は 2 つしかありません):

accsnum    rslt_lbcount
  A15          5
  A12          2
  A14          7
  A16          3

次のコードを使用して、これら 2 つを結合します。

proc sql;
create table both as
select Labtable.accsnnum label="Lab_accsnnum", Rslttable.accsnnum 
  label="Rslt_accsnnum", Labtable.Lab_lbcount label="Lab_lbtestcd_count", 
  Rslttable.Rslt_lbcount label="Rslt_lbtestcd_count", 
  Lab_lbcount-Rslt_lbcount as difference
from work.Labtable
full outer join work.Rslttable 
on Labtable.accsnnum = Rslttable.accsnnum;
quit;

これにより、次の表が生成されます。

accsnum   lab_lbcount   rslt_lbcount   difference
               5             .             .
  A12          3             2             1
               5             .             .
  A14          7             7             0
               .             5             .
               .             3             .

2 つのテーブルが結合する場所の accsnum のみが出力されますが、「lb_count」と「rslt_count」のカウントが含まれていることに注意してください。両方にない場合でも、その変数の accsnum を出力するか、accsnum で結合する方法を考え出す必要がありますが、2 つのテーブルのそれぞれから accsum を出力する必要があります。基本的に、出力は次のようになります。

accsnum   lab_lbcount   rslt_lbcount    difference
  A11          5             .             .
  A12          3             2             1
  A13          5             .             .
  A14          7             7             0
  A15          .             5             .
  A16          .             3             .     

または、次のようなものでも問題ありません。

accsnum    lab_accsum     rslt_accsum   lab_lbcount   rslt_lbcount  difference
              A11            .               5             .             .
  A12         A12           A12              3             2             1
              A13            .               5             .             .
  A14         A14           A14              7             7             0
               .            A15              .             5             .
               .            A16              .             3             .

どんな助けでも大歓迎です。

編集:明確でない場合に備えて、SAS環境内でSQLコードを実行しています。しかし、それはコードにはほとんど関係がないはずです。再度、感謝します!

4

1 に答える 1