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