2014-09-25 90 views
1

我试图在sas中创建一个表,只要它们不在另一个表中的另一列中列出,就会从特定列中进行观察。忽略sas中的观察列表sql

我使用的代码:

proc sql; 
create table tbl as 
select a.var1, a.var2, a.var3 from 
tblA as a, tblB as b 
where a.var1~=b.var1; 
quit; 

难道是因为我已经指派B,为表我并不是选择一个变量?或者我的情况只是不正确?

回答

1

你的情况不正确,你需要告诉表如何加入(等于何处)然后告诉他们你只想要那些不匹配的东西。

左连接用于此:

select a.var1, a.var2, a.var3 
    from 
    tblA as a 
    left join tblB as b on a.var1 = b.var1 
    where 
    b.var1 is null 

a是值你希望那不要匹配b

See SAS SQL join examples for more

这也可以使用NOT IN

+0

这工作就像一个魅力来完成。想想我可以用这个条件解决另一个问题。十分感谢。 – Hamish 2014-09-25 11:57:28