data _temp(rename=(a=c));
set raw(keep=a) nobs=n;
do group_seq=&ahead_limit to -&lag_limit by -1;
group=_n_-group_seq;
if 0<group<=n;
end;
run;
proc sql;
create table temp as
select a.a,b.c
from raw a inner join _temp b
on a.group=b.group
order by b.group,b.group_seq;
drop table _temp;
quit;[/code:1wz7fmly]