資料庫是oracle
table的名子是 aaa
aaa中的欄位分別為:日期欄位的型態是varchar2,存放的資料只有年跟月('YYYYMM')
                   客戶姓名的型態是varchar2比如說(日期只是舉例)
A客戶的最後一筆交易是在200908
B客戶的最後一筆交易是在201001
      .
      .
      .
     (有很多筆)請問,要怎麼抓取客戶的最後一筆交易,也就是最新的一筆交易

解决方案 »

  1.   

    select * from (
    select name_no, rownum() over (partition by date_no order by date_no desc) rn
    from aaa
    )
    where rn = 1;
      

  2.   

    TO nGX20080110 :
    謝謝你︿︿
    只是為什麼他一直出錯在rownum() 呢出現的錯誤代碼是00923
      

  3.   

    不好意思,写错了,应该是row_number()
      

  4.   

    建议楼主看看Oracle的关于分析函数的官方文档
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions137.htm#i86310
      

  5.   

    sorry,应该是按客户分类排序:select * from (
    select name_no, rownum() over (partition by name_no order by date_no desc) rn
    from aaa
    )
    where rn = 1;
      

  6.   

    select * from (
    select name_no, row_number()  over (partition by name_no  order by date_no desc) rn
    from aaa
    )
    where rn = 1;