|
沙发

楼主 |
发表于 2012-3-28 04:03:11
|
只看该作者
Re: few to many merge?
[code:vjhnikr4]data a;
input studyid discharg yymmdd10.;
pk=_n_;
cards;
10011 2008-10-29
10011 2008-11-7
10011 2008-11-18
10011 2009-10-17
10011 2010-1-2
10011 2010-1-22
;
data b;
input studyid call_mad yymmdd10.;
cards;
10011 2009-10-19
10011 2010-1-25
;
run;
proc sql;
create table c as
select d2.studyid, d2.discharg format=yymmdd10.,d1.call_mad format=yymmdd10.
from (select *,min(abs(call_mad-discharg)) as diff
from (select d1.*,call_mad
from a d1 left join b d2
on d1.studyid=d2.studyid)
group by call_mad
having diff>0 and call_mad-discharg=diff) d1 right join a d2
on d1.discharg=d1.discharg and d1.pk=d2.pk;
quit;[/code:vjhnikr4] |
|