表:lsmxz(历史明细帐 )
 zh(帐号)    jyrq (交易日期)        jysj(交易时间)    ye(余额)
 -----       -----                         -----                   -----
   1           3395                      7:00:00                   30
   1           3396                      8:00:00                   50
   2           3385                      7:00:13                   40
   2           3385                      23:00:19                  60
   3           3386                      4:00:07                   70
   3           3384                      6:00:00                   30
要求:取每个帐号最近的交易记录。
个人想法:按帐号分组,按交易日期,交易时间倒序排序,取每个分组的第一条记录。不知道语句怎么写?
请高手指点,谢谢!

解决方案 »

  1.   

    由于你0分。。所以不写了。。就告诉你用row_number()排序。。
      

  2.   

    按账号分组,取max(交易日期),取max(交易时间)即可。
      

  3.   

    楼主没有写分,他其实会给我100分的
    select u.*
      from (select a.zh,
                   a.jyrq,
                   a.jysj,
                   a.ye,
                   row_number() over(partition by a.zh order by a.jyrq desc, a.jysj desc) rn
              from lsmxz a) u
     where u.rn = 1
      

  4.   

    100 fen  
    thank you  star_guan 2008