楼主: funwin
11879 50

再次求助 如何插入(补充)缺失月份的数据? [推广有奖]

51
soporaeternus 发表于 2010-4-14 22:25:03
  1. proc sql;
  2.         create table t1 as
  3.                 select
  4.                         distinct company
  5.                         ,date
  6.                 from source
  7.                 order by company,date desc
  8.         ;
  9. quit;

  10. data t2;
  11.         retain company date start end;
  12.         set t1;
  13.         by company descending date;
  14.         if first.company then do;
  15.                 start=date;
  16.                 end=date;
  17.                 output;
  18.         end;
  19.         else do;
  20.                 end=intnx("month",start,-1,"sameday");
  21.                 start=date;
  22.                 do i=0 to intck("month",start,end) by 1;
  23.                         date=intnx("month",end,-i,"sameday");
  24.                         output;
  25.                 end;
  26.         end;
  27.         format start end yymmn6.;
  28.         drop i;
  29. run;

  30. proc sql;
  31.         create table t3 as
  32.                 select
  33.                         a.company
  34.                         ,a.date
  35.                         ,b.product
  36.                         ,b.quant
  37.                 from        t2 a
  38.                 inner join        source b
  39.                 on        a.company=b.company
  40.                         and a.start=b.date
  41.                 order by a.company
  42.                                 ,a.date
  43.         ;
  44. quit;
复制代码

source为原数据集
希望是对的,选了种我认为最简单的,,,,,,
Let them be hard, but never unjust

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 00:56