select * from tablename a
where 日期=(select max(日期) from tablename where 账号代码=a.账号代码)

解决方案 »

  1.   

    假如表名table_name
    select id, max(dates) dates into temp_1 
      from table_name
     group by idselect a.id, a.date, d1, d2
      from table_name a, temp_1 b
     where a.id=b.id
       and a.dates = b.dates
      

  2.   

    select * from TableName a
    join (
    select Max(日期) as 日期,账号代码 from TableName
    group by 账号代码
    ) aa on aa.账号代码 = a.账号代码
      

  3.   

    select * from TableName a
    join (
    select Max(日期) as 日期,账号代码 from TableName
    group by 账号代码
    ) aa on aa.账号代码 = a.账号代码 and aa.日期 = a.日期
      

  4.   

    select a.*
    from a,(select id,max(date)
            from a
            Group by id) b
    where a.id=b.id and a.date=b.date
    其中a为原表名,
    b为子查询结果表的别名。
      

  5.   

    多谢!
    经试验,大家的方法都有效。
    CSDNM(CSDN经理(信就不假) 和 falaly(风雨) 、glust(惜缘) 的都可以。我写了两个查询,后者的速度要慢查询1:速度非常快
    select * from T_CDKYERJ a
    join (
    select Max(RQ) as RQ,ZHDM from T_CDKYERJ
    group by ZHDM
    ) aa on aa.ZHDM = a.ZHDM and AA.RQ=A.RQ查询2:
    Declare @Last_RQ datetime
    set @Last_RQ='2002-07-16'
    select * from T_CDKYERJ YE
    where RQ=(select max(RQ) from T_CDKYERJ where ZHDM=YE.ZHDM and RQ<@Last_RQ)