一张表中: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) 编辑 收藏