SQL语言查询日期最晚的某些条记录

来源:百度知道 编辑:UC知道 时间:2024/05/08 06:24:14
员工ID 更改时间 改后金额
111179 2009-1-31 950
111179 2009-7-31 1000
111180 2009-1-31 950
111180 2009-7-31 1000
111181 2009-1-31 950
111181 2009-7-31 1000
111184 2009-1-31 950
111184 2009-7-31 1000
111134 2009-1-31 800
111134 2009-7-31 840
111172 2009-1-31 920
111172 2009-7-31 960

这个表里面,我想取出每个人最后更改的那条记录,怎么弄呢?
就是说;取出的表里每个人只有一条数据,数据是更改时间最晚的那条?

SQL怎么写?

谢谢
也就是说取出的结果是:

111179 2009-7-31 1000

111180 2009-7-31 1000

111181 2009-7-31 1000

111184 2009-7-31 1000

111134 2009-7-31 840

111172 2009-7-31 960

select 员工ID ,max(更改时间) as 更改时间,改后金额 from table group by 员工ID,改后金额

以上,希望对你有所帮助!

正确答案:

select 表.*
from 表,(select 员工id,max(更改时间) 更改时间 from 表 group by 员工id) x
where 表.更改时间=x.更改时间 and 表.员工id=x.员工id

select t1.* from table t1,table t2 where t1.员工ID =t2.员工ID group by t1.员工ID ,t1.更改时间,t1.改后金额 having t1.更改时间=max(t2.更改时间)