SAS中文论坛
标题:
SQL问题
[打印本页]
作者:
shiyiming
时间:
2010-7-27 16:09
标题:
SQL问题
我有两个数据集
dataset1: key date1
dataset2: key date2 var
我想要合并数据集,使得date1=date2或者取date1之前最近的date2的数据
如:
dataset1
key date1
1 20050607
1 20071010
2 20040202
2 20050302
dataset2
key date2 var
1 20050607 0
1 20061231 1
1 20071223 1
2 20031201 3
2 20050201 4
结果为:
key date1 date2 var
1 20050607 20050607 0
1 20071010 20060631 1
2 20040202 20031201 3
2 20050302 20050201 4
我想出的办法是:
proc sql;
create table new as
select a.*, b.date2, b.var
from dataset1 as a left join dataset2 as b
on a.key=b.key and b.date2<=a.date2
order by key, date1, date2;
quit;
data new; set new; by key date1; if last.date1; run;
不过这种方法效率太差,我的数据量非常大,不知道有没有好的建议可以一步完成?谢谢!
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2