现有关系数据库关系如下:
学生(学号,姓名,性别,专业,奖学金)
课程(课程号,名称,学分)
成绩(学号,课程号,分数)
问:查询每个同学所选课程的最高成绩,列出学号,姓名,课程号,分数 
这个SQL查询怎么写啊??

解决方案 »

  1.   

    select
      a.学号,a.姓名,b.课程号,c.分数
    from
      学生 a,课程 b,成绩 c
    where
      a.学号=c.学号
    and
      b.课程号=c.课程号
    and
      分数=(select max(分数) from 成绩 where 学号=c.学号 and 课程号=c.课程号)
      

  2.   

    SELECT 学号,姓名,(SELECT 课程号 FROM 课程 WHERE 学号=外层学号),MAX(分数)
    FROM 三表INNERT JOIN 
    GROUP BY 学号,姓名
      

  3.   


    SELECT 学号,姓名,(SELECT 课程号 FROM 课程 WHERE 学号=外层学号 AND 分数=MaxScore),MAX(分数)AS MaxScore
     FROM 三表INNERT JOIN
     GROUP BY 学号,姓名
      

  4.   

    还是不行……
    “select max(分数)from 成绩where 学号=c.学号and 课程号=c.课程号”这句不是查找出成绩表中最高的分数么?我需要找出每个同学的最高分数
      

  5.   

    SELECT X.学号,X.姓名,A.课程号,A.分数
    FROM 学生表 X,
    (SELECT * FROM 成绩 A WHERE 分数=(SELECT MAX(分数) FROM 成绩 WHERE 学号=A.学号))A
    WHERE X.学号=A.学号
      

  6.   


    SELECT 成绩.学号,学生.姓名,成绩.课程号,成绩.分数 FROM 成绩,学生,
    (select 成绩.学号,max(成绩.分数) 最高分 FROM 成绩 GROUP BY 成绩.学号) t
    WHERE 成绩.学号=t.学号 AND 成绩.分数=t.最高分 AND 学生.学号= 成绩.学号