物品编号 领用人 领用时间
00001 F2325221 20080504
00001 F2325887 20080302
00001 F2325234 20080501
00001 F2325221 20080507
00003 F2321188 20080504
00003 F2325221 20080502
00005 F2325254 20080504
00005 F2325220 20080603
00005 F2325234 20080705
00005 F2325221 20080515希望得到每个物品的最后领用人和领用时间!!
那位大哥能给指点一下??!!
谢谢了
00001 F2325221 20080504
00001 F2325887 20080302
00001 F2325234 20080501
00001 F2325221 20080507
00003 F2321188 20080504
00003 F2325221 20080502
00005 F2325254 20080504
00005 F2325220 20080603
00005 F2325234 20080705
00005 F2325221 20080515希望得到每个物品的最后领用人和领用时间!!
那位大哥能给指点一下??!!
谢谢了
group by
补充一下
如上例,想要的结果是:物品编号 领用人 领用时间 00001 F2325221 20080507
00003 F2321188 20080504
00005 F2325234 20080705
开始时思路和2楼类似,可是不能实现显示3列,还望各位大侠指点,工作使用,比较着急!谢谢了
select 物品编号,领用人,领用时间 from table t1
join (select max(领用时间),物品编号 from table group by 物品编号) t2
on (t1.物品编号=t2.物品编号 and t1.领用时间=t2.max(领用时间),);
select 物品编号,领用人,领用时间 from table t1
join (select max(领用时间),物品编号 from table group by 物品编号) t2
on (t1.物品编号=t2.物品编号 and t1.领用时间=t2.max(领用时间));
select t.no,
t.who,
max(t.time) over (partition by t.no desc)
rownum rn
from table t) t1 where t1.rn = 1
写错了,应该是这个select * from (
select t.no,
t.who,
max(t.time) over (partition by t.no order by t.time desc)
rownum rn
from table t) t1 where t1.rn = 1
from t
where (t.no, t.time) in (select t.no, max(t.time) from t group by t.no)
from t
where (t.no, t.time) in (select t.no, max(t.time) from t group by t.no)