proc sql 在每行的最近日期左合并

问题描述 投票:0回答:1

我正在尝试使这段代码正常工作,但由于某种原因它给了我很多重复项。 Table1 有 75k 条记录,我想从 Table2 中获取每一行的数据。请帮助我:

proc sql;
create table table3 as
select a.*, b.* 
from table1 as a
left join table2 as b on a.username=b.username and datepart(a.date)>=datepart(b.date)
group by a.username, a.id, b.date
having b.date = max(b.date);
quit;
duplicates left-join proc-sql
1个回答
0
投票

如果我将此代码添加到上述代码下方,那么我会得到所需的结果,但这不是执行此操作的有效方法。理想情况下,期望的结果应该来自合并代码。

proc sort data=table3 out=table4;
by username id descending a_date descending b_date;
run;
proc sort data = table4 nodupkey out=table5;
by username id a_date b_date;
run;
© www.soinside.com 2019 - 2024. All rights reserved.