select a.学号,a.毕业时间,a.学历 from 
     tabname a 
  inner join
     (select 学号,max(毕业时间) as 毕业时间 from tabname group by 学号) b
  on 
     a.学号=b.学号 
     and 
     a.毕业时间 = b.毕业时间

解决方案 »

  1.   

    select 学号,max(毕业时间),max(学历) from 表名 group by 学号
      

  2.   

    select 学号,max(毕业时间), 学历 from tablename group by 学号
      

  3.   

    改一下:
    select 学号,max(毕业时间) as 毕业时间,max(学历) as 学历 from 表名 group by 学号
      

  4.   

    非常感谢,因为上面那张表我已经是经过选择查询的所以这样做显得非常长,这样不知道会不会影响速度
    写出来的查询语句:select A4.工号,A4.时间,A4.最高
    from
    (select A1.工号,max(A1.时间) as 时间
    from
    (
    select 工号,第一学历 as 最高,第一学历毕业时间 as 时间 from qzsy where year(第一学历毕业时间)<=2000 and month(第一学历毕业时间)<=8
    union 
    select 工号,第二学历 as 最高,第二学历毕业时间 as 时间 from qzsy where year(第二学历毕业时间)<=2000 and month(第二学历毕业时间)<=8
    union 
    select 工号,第三学历 as 最高,第三学历毕业时间 as 时间 from qzsy where year(第三学历毕业时间)<=2000 and month(第三学历毕业时间)<=8
    ) as A1
    group by A1.工号) as A3,(
    select 工号,第一学历 as 最高,第一学历毕业时间 as 时间 from qzsy where year(第一学历毕业时间)<=2000 and month(第一学历毕业时间)<=8
    union 
    select 工号,第二学历 as 最高,第二学历毕业时间 as 时间 from qzsy where year(第二学历毕业时间)<=2000 and month(第二学历毕业时间)<=8
    union 
    select 工号,第三学历 as 最高,第三学历毕业时间 as 时间 from qzsy where year(第三学历毕业时间)<=2000 and month(第三学历毕业时间)<=8
    ) as A4
    where A3.工号=A4.工号 and A3.时间=A4.时间
      

  5.   

    select 学号,max(毕业时间),max(学历) from 表名 group by 学号
    这样写会出错,时间与学历不一定会是同一个记录
      

  6.   

    select 学号,max(毕业时间), 学历 from tablename group by 学号
    这个会出错,提示:学历不包含在聚集函数中
      

  7.   

    我的再改一下
    select 学号,max(毕业时间),(select 文凭 from 表名 b where b.毕业时间=max(a.毕业时间)) from 表名 a   group by 学号测试通过
      

  8.   

    select max(学历) from 表   结果是什么?
    --
      

  9.   

    select max(学历) from 表   这肯定不行啊
      

  10.   

    to:wzp431(夜清风)
    改成这样就行了,我测试过了,可以的:
    select 学号,max(毕业时间) as 毕业时间,(select 学历 from 表名 b where b.毕业时间=max(a.毕业时间)) as 学历 from 表名 a   group by 学号
      

  11.   

    各位在请教一个问题:现在要判断时间在2000-8以前,如果用year(毕业时间)<=2000 and month(毕业时间)<=8 这样如果是1999-9也不行
      

  12.   

    where datediff(day,毕业时间,'2000-8-1')>0
      

  13.   

    最后一个版本应该是对的。
    之前的MAX(毕业时间)和MAX(学历)未必对应。
      

  14.   

    where datediff(day,毕业时间+'-1','2000-8-1')>0
      

  15.   

    他怎么提示我要加一个day参数值
      

  16.   

    select max(学历) from 表   结果是 研究生 
    按排序规则来排:在地区设置是中国的,默认用Chinese_PRC,既按拼音排序。
    Chinese_PRC