欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle取日期新近的记录

更新时间: 2014-01-05 02:10:38 责任编辑: Author_N1

 

ORACLE取日期最近的记录
件号 名称 供应商 数量 时间        使用者 批号 备注
1 a aa 20 2013/5/1 0:00 e 2344 0
1 a aa 30 2013/5/2 0:00 e 1234 1
2 b bb 85 2013/5/3 0:00 r 2341 0
2 b bb 11 2013/5/4 0:00 j 3244 2
3 c cc 3 2013/5/5 0:00 r 3423 2
3 c cc 30 2013/5/6 0:00 g 1223 3
4 d dd 48 2013/5/7 0:00 j 2134 1

如上图所示,根据件号、供应商汇总数量,然后时间、使用者、批号、备注显示为时间最近的记录。

结果如下图所示:

件号 名称 供应商 数量 时间 使用者 批号 备注
1 a aa 30 2013/5/2 0:00 e 1234 1
2 b bb 11 2013/5/4 0:00 j 3244 2
3 c cc 30 2013/5/6 0:00 g 1223 3
4 d dd 48 2013/5/7 0:00 j 2134 1
请高手指点,用SQL语句实现。
--参考方法--
select * from 
(select t.*,row_number() over(partition by 件号 order by 时间 desc ) rn from t) t
where t.rn=1 
--参考方法--

with t1 as
(
    select 1 c1,'a' c2,'aa' c3,20 c4,'2013-05-01' c5,2222 c6 from dual union all
    select 1 c1,'a' c2,'aa' c3,30 c4,'2013-05-02' c5,1111 c6 from dual union all
    select 2 c1,'b' c2,'bb' c3,85 c4,'2013-05-03' c5,3333  c6 from dual union all
    select 2 c1,'b' c2,'bb' c3,11 c4,'2013-05-04' c5,4444 c6 from dual 
)

select c1,c2,c3,c4,c5,c6
from 
(
       select c1,c2,c3,c4,c5,c6,row_number() over(partition by c1 order by c5 desc) rn
       from t1
)
where rn  = 1


    c1    c2    c3    c4    c5        c6
----------------------------
1 1 a aa 30 2013-05-02 1111
2 2 b bb 11 2013-05-04 4444

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:10:38
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6563/
本文WWW.DOC100.NET DOC100.NET版权所有。