- proc sql;
- create table t1 as
- select
- distinct company
- ,date
- from source
- order by company,date desc
- ;
- quit;
- data t2;
- retain company date start end;
- set t1;
- by company descending date;
- if first.company then do;
- start=date;
- end=date;
- output;
- end;
- else do;
- end=intnx("month",start,-1,"sameday");
- start=date;
- do i=0 to intck("month",start,end) by 1;
- date=intnx("month",end,-i,"sameday");
- output;
- end;
- end;
- format start end yymmn6.;
- drop i;
- run;
- proc sql;
- create table t3 as
- select
- a.company
- ,a.date
- ,b.product
- ,b.quant
- from t2 a
- inner join source b
- on a.company=b.company
- and a.start=b.date
- order by a.company
- ,a.date
- ;
- quit;
source为原数据集
希望是对的,选了种我认为最简单的,,,,,,


雷达卡
京公网安备 11010802022788号







