我有以下数据
select  'A' as 客户, 'D00001' as 对帐单编号, '2006-5-30' as 对帐单收回日期  into aa
 union all select 'B', 'D00002','2006-2-28'
 union all select 'A', 'D00003','2006-2-28'
 union all select 'B', 'D00004','2006-4-28'请问如何得到各客户最后一次收回的对帐单清单?
如上例的数据,希望得到如下数据客户 对帐单编号 对帐单收回日期   
A    D00001      2006-5-30
B    D00004      2006-4-28

解决方案 »

  1.   

    try:
    select * from tb a where not exists(select 1 from tb where 客户=a.客户 and 对帐单收回日期>a.对帐单收回日期)
      

  2.   

    Select * from aa as a where not exists
    (Select * from aa where 客户=a.客户 and 对帐单收回日期>a.对帐单收回日期)
      

  3.   

    select 客户
    ,max(对帐单编号)对帐单编号
    ,max(帐单收回日期) 帐单收回日期   
    from aa
    group by 客户
      

  4.   

    select t.* from aa t,(select max(对帐单收回日期) a ,客户 b from aa group by 客户)  x 
     where 对帐单收回日期= a  and 客户=b谢谢楼上几位兄弟,我也捉摸出一个.
    不知到底哪种方式效率最高?==================================
    =  CSDN助手 全面支持CSDN论坛     =
    =  监视、收藏、历史、签名走马灯  =
    ==================================