select * from t aa
where createtime=(select top 1 createtime from t where projectname=aa.projectname
                  order by createtime desc)

解决方案 »

  1.   

    select t.*
     from t,(select projectname,createtime=max(createtime) from t group by projectname) a
     where t.projectname=a.projectname and t.createtime=a.createtime
    --你给的结果不对
      

  2.   

    select a.* from t a,(select projectname,max(createtime) as createtime
                         from t 
                         group by projectname) b
    where a.projectname=b.projectname and a.createtime=b.createtime
      

  3.   

    select a.* from tb a,
    (select projectname,content,createtime=min(createtime) from tb group by rojectname,content)b 
    where a.projectname=b.projectname and a.content=b.content and a.createtime=b.createtime
      

  4.   

    强烈支持小里铅笔刀的做法。。
    select * 
    from t a
    where createtime=(select top 1 createtime from t where projectname=a.projectname
                      order by createtime desc)
      

  5.   

    select * from t a
    where createtime=(select top 1 createtime from t where projectname=a.projectname
                      order by createtime desc)
      

  6.   

    select a.* from t a join (select projectname,max(createtime) as createtime from t group by projectname) b
       on a.projectname=b.projectname and a.createtime=b.createtime
      

  7.   

    最简单的写法:
    select id, projectname,content,createtime from t where id in (select max(id) from t group by projectname)