我有两个表我正在做一个完整的外部连接。他们加入了他们共享的变量“accsnnum”。但我有一个问题。accsnnum 仅在两个集合中都存在时打印出来,但我需要它打印出来,不管它是否在两个集合中,因为我正在比较按 accsnum 分组的变量的计数。
为了说明,我有一个看起来像这样的labtable(只有这两个变量):
accsnum lab_lbcount
A12 3
A11 5
A14 7
A13 5
还有一个看起来像这样的 rslttable(只有这 2 个变量):
accsnum rslt_lbcount
A15 5
A12 2
A14 7
A16 3
我使用以下代码将这两者结合起来:
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 .
请注意,它只打印出两个表连接位置的 accsnum,但包括“lb_count”和“rslt_count”的计数。我需要让它打印出该变量中的 accsnum,即使它不在两者中,或者我需要想办法通过 accsnum 加入但仍然从两个表中打印出 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 代码,以防不清楚。但这对代码应该没有什么影响。再次感谢!