posts - 60,comments - 71,trackbacks - 0

    一张表中:TEST
    三个字段 ID,EVENTID,TIME
    ID各个都不同..TIME 也不同..EVENTID有几条记录都一样

    现在想查记录,如果eventid 有相同的记录,那只取time最新的那条记录 

    用如下的SQL即可获取所需的数据:
    select * from  TEST a  where a.TIME =(select max(TIME) from TEST where EVENTID=a.EVENTID)  

   另:如果TEST表中还有一个字段,OTHEREVENTID,这个字段是EVENTID下的一个分类,即 相同的EVENTID 下有不同的
        OTHEREVENTID ,类似如下数据:

       ID,   EVENTID,  OTHEREVENTID,  TIME
      1001    1001001       100100101          2008-08-01 22:11:15
      1002    1001001       100100101          2008-08-01 25:11:15
      1003    1001001       100100102          2008-08-01 28:11:15
      1004    1001001       100100102          2008-08-01 30:11:15
      1005    1001002       100100201          2008-08-02 25:52:15
      1006    1001003       100100301          2008-08-03 28:11:15

    这样想查询最新那条记录的话,则需加上OTHEREVENTID做为条件,即:
    select * from  TEST a  where a.TIME =(select max(TIME) from TEST where EVENTID=a.EVENTID and OTHEREVENTID='100100102')
  
    即可.
posted on 2008-08-01 16:44 henry1451 阅读(119) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: