ID NAME RQ
1 ABC 2004-1-1
1 ABC 2005-2-1
2 CBD 2004-1-2
2 CBD 2004-1-3
3 CDE 2007-1-1想 查询 每个ID 对应的最新的一个日期作为显示结果!该如何写SQL?显示结果如下:
ID NAME RQ
1 ABC 2005-2-1
2 CBD 2004-1-3
3 CDE 2007-1-1
1 ABC 2004-1-1
1 ABC 2005-2-1
2 CBD 2004-1-2
2 CBD 2004-1-3
3 CDE 2007-1-1想 查询 每个ID 对应的最新的一个日期作为显示结果!该如何写SQL?显示结果如下:
ID NAME RQ
1 ABC 2005-2-1
2 CBD 2004-1-3
3 CDE 2007-1-1
group by id,name
insert into @t select 1,'ABC','2004-1-1'
union all select 1,'ABC','2005-2-1'
union all select 2,'CBD','2004-1-2'
union all select 2,'CBD','2004-1-3'
union all select 3,'CDE','2007-1-1'select * from @t a where not exists(select 1 from @t where name=a.name and rq>a.rq)
若不是,用3楼的
(select max(rq) from 表 group by name)
(select max(rq) from 表 group by id)
(select max(rq) from 表 group by id)以上2中方法,能不能讲解一下 实现的思路啊!
select 1 就是作为这列的值
RIGHT JOIN
(SELECT ID,MAX(RQ) AS RQ FROM TABLE_1 GROUP BY ID) B
ON (A.RQ=B.RQ AND A.ID=B.ID) ORDER BY A.ID