zhufengyuan 发表于 2012-7-11 09:31 
是出现一次就算一次,会有date3, date4, date5~~~
我只会笨方法....先 求出最大会出现几个,然后再用数组赋值...
proc sql;
create table a;
select num, count(num) as no
from b
group by num;
proc sql;
select max(no) into n
from a;
quit;
do result;
set b;
by num;
retain no;
array date date(1) - date(n);
if first.num then no=0;
no=no+1;
do i = 1 to &n.;
if i = no then date(i) = date;
end;
if last.num;
run;
你试试,我还没调试过