oracle如何查询几条记录中最新的一条

我有一张表A,字段如下:
id1 date id2
1 *0 11223
1 *1 11233
1 *2 25312
2 *0 25644
2 *1 15942

表B,如下:
id A B id1
1 * * 1
2 * * 1
3 * * 2
4 * * 1

现在要查询B表中的字段id,A表中的字段id2,条件是要满足b.id1=a.id1,此外查询时A表中id1值相同的有多条记录,我只需要最新的那一条,即结果需要是

b.id a.id2
1 25312
2 25312
3 15942
4 25312

应该怎样实现啊?

第1个回答  2011-06-10
select c.id,d.id2 from B c,(select t.id1,max(t.id2) id2 from A) d
where c.id1=d.id1(+)追问

id、id1和id2的值是我为了方便写的,并不是数字,而是GUID