使用sas proc sql更新表条件

时间:2014-04-08 14:58:53

标签: sql sas

我有一张这样的表

ID         date1         date2
 1    01/01/2007    31/12/2007
 1    01/01/2008    31/12/2008
 2    01/01/2007    31/12/2007
 ...

我想要做的是按ID对ID进行排序,没有ID上的dupkey,当ID有多个条目时,保持每个相似ID的date1和每个相似ID的最大值之间的最小值。 DATE2。

我为第一个日期尝试的代码如下:

proc sql;
    update table
    set Date1 = (SELECT b.dateAffiliation
                 from table b
                 where b.date1 > Date1
                 and B.ID=ID)
quit;

不幸的是,我似乎无法用SAS做到这一点。

我使用此代码遇到了同样的问题:

proc sql;
  update table
  set a.Date1 = b.Date1
  from table as a join table as b
      on a.Date1 > b.Date1
      And a.ID=b.ID;
quit;

1 个答案:

答案 0 :(得分:1)

我得到了解决方案:

proc sql;
    create table wanted as
    select *, min(Date1) as date1min, max(date2) as date2max
    from have
    group by ID;
quit;