数据表字段如下 
name 姓名
timestate 时间状态(0/1/2)只有三种状态
desc 一些说明
一共可以登记三次也就是说每name最多只能在数据表里出现三条记录如 name timestate desc
   a     0         aaa
   b     0         bbb
   a     1         aa
   a     2         a2
   b     1         bba如何才能取得每name最新的那条记录
就是如何取得如下数据集
name  timestate desc
a      2         a2
b      1         bba

解决方案 »

  1.   

    select top 1 * from table1 group by name order by desc desc
      

  2.   

    select top 1 * from table1 group by name order by desc desc
      

  3.   

    name and timestate是主键
    select t1.*,t.desc from
    (select name,max(timestate) timestate
    from t group by name) t1,t
    where t1.name=t.name and t1.timestate=t.timestate
      

  4.   

    刚刚在sql server2005下测试通过:
    select t1.*,t.des from
    (select [name],max(timestate) as timestate
     from t group by name) as t1,t 
    where t1.[name]=t.[name] and t1.timestate=t.timestate;rickjelly2004(rick & jelly)的正确.不知道为什么
      select top 1 * from table1 group by [name] order by [desc] desc 
    不行呢?
     奇怪呢!