可~乐 发表于 2012-9-9 22:08 
再请问一下老师,这个还是不对。
如果我先生成了一个时间表,然后在通过循环的方式找到过去3个月。
data dailyreturn;
set dailyreturn;
yymm=compress(year(date)||month(date));
month=input(yymm,yymmn6.);
format month yymmd7.;
keep stkcd date month return;
run;
proc sql;
create table timetable as
select distinct stkcd,month from dailyreturn;
quit;
%let trd_prd=3;
data tt;
set timetable;
format t_month yymmn6.;
do i=1 to &trd_prd.;
t_month=month-i;
output;
end;
run;
这样子的结果就是:例如month=199404对应的三个t_month都是199403.
请问错在什么地方?谢谢!