dingdang15 发表于 2009-6-21 10:02 
2# lyceum
请问我觉得是不是可以这样啊?
proc sort data=match; by company2008 value;
data match; set match;by company2008;
retain value;
if first.company2008;
drop value;
run;
quit;
不可以,你这value的差值正好是1,所以就对了,而且没有考虑重复的情况, 你可以测试我提供的数据
弱弱的问下,钱还在不?
-----------------------------
data data1;
input company2008 $ value1;
datalines;
A 100
D 98
E 113
;
data data2;
input company2006 $ value2;
datalines;
B 99
C 102
F 110
G 97
H 97
K 116
M 116
;
proc sql;
create table match as select *, abs(value1-value2) as value
from data1, data2;
create table youwant as
select distinct * from match
group by company2008
having value=min(value);
quit;