有表tb(sCode varchar(20),sDt datetime,Station varchar(10)) 给出以下数据22313234133121108500 2011-12-26 14:11:39 互感器
22313234133121108500 2011-12-26 14:11:08 互感器
31222222244121108548 2011-12-26 14:11:46 互感器
31222222244121108548 2011-12-26 14:11:27 互感器
31222222244121108548 2011-12-26 12:37:01 互感器
31222222244121108548 2011-12-26 10:02:46 互感器
22313234133121108500 2011-12-26 13:53:32 接地刀
22313234133121108500 2011-12-26 13:51:55 接地刀
22313234133121108500 2011-12-26 13:51:39 接地刀
31222222244121108548 2011-12-26 13:48:21 接地刀
31222222244121108548 2011-12-26 13:48:14 接地刀
31222222244121108548 2011-12-26 13:41:59 接地刀需要得出以下数据:22313234133121108500 2011-12-26 14:11:39 互感器
31222222244121108548 2011-12-26 14:11:46 互感器
22313234133121108500 2011-12-26 13:53:32 接地刀
31222222244121108548 2011-12-26 13:48:21 接地刀就是按照Station字段分组,在相同的sCode记录行里取时间最大的记录。
不知道我讲清楚没有,如果不明白,请告诉我。

解决方案 »

  1.   

    select * from tb a
     where not exists(select 1 from tb 
          where sCode=a.sCode and Station=a.Station and sDt>a.sDt)
      

  2.   

    select sCode,max(sDt) sDt,max(Station)  Station from tb 
    group by sCode
      

  3.   

    大哥,按照Station分组后,取sCode相同的记录里面时间最大的记录啊。