oracle SQL抓取最新的交易紀錄....

qq33252000 2010-10-04 09:27:53
資料庫是oracle
table的名子是 aaa
aaa中的欄位分別為:日期欄位的型態是varchar2,存放的資料只有年跟月('YYYYMM')
客戶姓名的型態是varchar2

比如說(日期只是舉例)
A客戶的最後一筆交易是在200908
B客戶的最後一筆交易是在201001
      .
      .
      .
     (有很多筆)

請問,要怎麼抓取客戶的最後一筆交易,也就是最新的一筆交易
...全文
779 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq33252000 2010-10-04
  • 打赏
  • 举报
回复
感激

結案嚕︿︿
ngx20080110 2010-10-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ngx20080110 的回复:]
sorry,应该是按客户分类排序:

select * from (
select name_no, rownum() over (partition by name_no order by date_no desc) rn
from aaa
)
where rn = 1;
[/Quote]
select * from (
select name_no, row_number() over (partition by name_no order by date_no desc) rn
from aaa
)
where rn = 1;
ngx20080110 2010-10-04
  • 打赏
  • 举报
回复
sorry,应该是按客户分类排序:

select * from (
select name_no, rownum() over (partition by name_no order by date_no desc) rn
from aaa
)
where rn = 1;
qq33252000 2010-10-04
  • 打赏
  • 举报
回复
謝謝~
但我比較好奇的是
為什麼同一筆資料會出現3~4筆呢??
部是應該只有一筆???
因為抓取最新的一筆交易紀錄
ngx20080110 2010-10-04
  • 打赏
  • 举报
回复
建议楼主看看Oracle的关于分析函数的官方文档
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions137.htm#i86310
ngx20080110 2010-10-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qq33252000 的回复:]
TO nGX20080110 :
謝謝你︿︿
只是為什麼他一直出錯在rownum() 呢

出現的錯誤代碼是00923
[/Quote]
不好意思,写错了,应该是row_number()
qq33252000 2010-10-04
  • 打赏
  • 举报
回复
TO nGX20080110 :
謝謝你︿︿
只是為什麼他一直出錯在rownum()

出現的錯誤代碼是00923
zcfzcf001 2010-10-04
  • 打赏
  • 举报
回复
楼上正解,厉害!
ngx20080110 2010-10-04
  • 打赏
  • 举报
回复
select * from (
select name_no, rownum() over (partition by date_no order by date_no desc) rn
from aaa
)
where rn = 1;

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧