主表:
姓名
张三
李四
王五

明细表:
每次考试成绩现在要实现如下:
姓名  最高成绩要求:取每个人的最高成绩,并select出来,如果某人没有考试纪录,则考试成绩为空

解决方案 »

  1.   

    把表的结构贴出来
    猜一个
    select 主表.姓名,a.科目,a.成绩 from 明细表 a inner join 主表 on a.姓名id=主表.姓名id
     where not exists(select 1 from 明细表 where 姓名id=a.姓名id and 科目=.a科目 and 成绩>a.成绩 )
      

  2.   

    我如果没猜错,阁下莫非也在学SQL,而且用的数据库是XSCJ,表有xs,xs_kc,kc三张表吧~呵呵~~这个好象是道习题,不过我都有点忘了~
    凭我记忆力吧~
    select xs_kc.学号,max(成绩) as 最高成绩 from xs
    inner join xs_kc on xs.学号=xs_kc.学号
    group by xs_kc.学号
    没有成绩的同学既然没有成绩就没必要显示出来~你还可以用明细参数 cube 或者rollup
      

  3.   

    To wojila(阳阳) 同學:
    別人要顯示就給人家顯示啦,小改一下,left join
    select xs_kc.学号,isnull(max(成绩), 0) as 最高成绩 from xs
    left join xs_kc on xs.学号=xs_kc.学号
    group by xs_kc.学号
    没有成绩的同学既然没有成绩就没必要显示出来~你还可以用明细参数 cube 或者rollup
      

  4.   

    select name,max(score)
    from tb
    group by name