proc sql用于按列合并两个表

时间:2014-02-24 09:26:46

标签: sql sas

我有两张桌子:

DATA1:

 obs unique_id date     v1  x1  x2  x3  x4
    1   4   20050203    A   1   2   3   4
    2   3   20050203    B   2   3   4   5
    3   2   20050203    C   3   4   5   6
    4   1   20050203    D   4   5   6   7

DATA2:

unique_id   z1  z2  c1  c2
1               
2               
3               
4               

我的问题是: 我想通过匹配unique_id找到一个新变量,比如p1 =((x1 + x3)-z1)/ z2)。例如,将unique_id 1与两个表中的1匹配,然后计算变量。请帮助我使用proq sql。

2 个答案:

答案 0 :(得分:0)

这应该是加入

SELECT ((x1+x3)-z1)/z2) AS p1
 FROM data1,data2
 WHERE data1.unique_id=data2.unique_id;

答案 1 :(得分:0)

使用join运算符:

select ((x1+x3)-z1)/z2) as p1
from data1 d1 inner join data2 d2 
   on d1.unique_id = d2.unique_id

如果您在data2中没有匹配的数据,则可以使用Left outer joinCOALESCE,例如:

select ((x1+x3)-COALESCE(z1,0))/Coalesce(z2,1)) as p1
from data1 d1 left outer join data2 d2 
    on d1.unique_id = d2.unique_id