SELECT 学生.学号,学生,姓名,
CASE WHEN SUM(选课.成绩)>85 THEN '好'
WHEN SUM(选课.成绩)BETWEEN 71 AND 85 THEN '较好'
WHEN SUM(选课.成绩)BETWEEN 60 AND 70 THEN '一般'
WHEN SUM(选课.成绩)<60 THEN '较差'
END AS 学习情况
FROM 学生
INNER JOIN 选课 ON 学生.学号 = 选课.学号
INNER JOIN 课程 ON 课程.课程号 = 选课.课程号
GROUP BY 学生.学号,学生,姓名

解决方案 »

  1.   

    选中左上角的显示导航栏,再选中其中的数据库开发,接着选中MS-SQL SERVER,最后选中喜欢的话题,比如基础类,选中提问就可以了!!!
      

  2.   

    有错误啊~~~~~~~~555555555555~~~~~~~错误提示:
    服务器: 消息 156,级别 15,状态 1,行 2
    在关键字 'CASE' 附近有语法错误。还有:SELECT 学生.学号,学生,姓名,----应该为:SELECT 学生.学号,学生.姓名吧???
         GROUP BY 学生.学号,学生,姓名----应该为:GROUP BY 学生.学号,学生.姓名???
      

  3.   

    还有,是求平均成绩,不是求总成绩SUM.........
      

  4.   

    select 学号,姓名,
    case
    when 平均成绩 >=85  then '好'
    when 平均成绩 >=70 and 平均成绩<85 then '较好'
    when 平均成绩 >=60 and 平均成绩<70 then '一般'
    when 平均成绩 <60   then '较差'
    end 学习情况 from (
    select a.学号,b.姓名,avg(a.成绩) as 平均成绩
    from 选课 a left join 学生 a on a.学号=b.学号
    group by a.学号,b.姓名
    )
      

  5.   

    select 学号,姓名,
    case
    when 平均成绩 >=85  then '好'
    when 平均成绩 >=70 and 平均成绩<85 then '较好'
    when 平均成绩 >=60 and 平均成绩<70 then '一般'
    when 平均成绩 <60   then '较差'
    end 学习情况 from (
    select a.学号,b.姓名,avg(a.成绩) as 平均成绩
    from 选课 a left join 学生 a on a.学号=b.学号
    group by a.学号,b.姓名
    ) cc
      

  6.   

    谢谢大家~~~~~~~~~呵呵!
    但还是有小小错误:
    服务器: 消息 1011,级别 15,状态 1,行 9
    在 FROM 子句中多次指定了相关名称 'a'。
      

  7.   

    select 学号,姓名,
    case
    when 平均成绩 >=85  then '好'
    when 平均成绩 >=70 and 平均成绩<85 then '较好'
    when 平均成绩 >=60 and 平均成绩<70 then '一般'
    when 平均成绩 <60   then '较差'
    end 学习情况 from (
    select a.学号,b.姓名,avg(a.成绩) as 平均成绩
    from 选课 a left join 学生 b on a.学号=b.学号
    group by a.学号,b.姓名
    ) cc
      

  8.   

    --应该行的吧,别把最后的c去掉了.
    select 学号,姓名,
    case
    when 平均成绩 >=85  then '好'
    when 平均成绩 >=70 and 平均成绩<85 then '较好'
    when 平均成绩 >=60 and 平均成绩<70 then '一般'
    when 平均成绩 <60   then '较差'
    end 学习情况 from (
    select a.学号,b.姓名,avg(a.成绩) as 平均成绩
    from 选课 a left join 学生 b on a.学号=b.学号
    group by a.学号,b.姓名
    ) c
      

  9.   

    当然可以.
    select 学号,姓名,
    case
    when 平均成绩 >=85  then '好'
    when 平均成绩 >=70 and 平均成绩<85 then '较好'
    when 平均成绩 >=60 and 平均成绩<70 then '一般'
    when 平均成绩 <60   then '较差'
    end 学习情况 from (
    select a.学号,b.姓名,avg(a.成绩) as 平均成绩
    from 选课 a left join 学生 b on a.学号=b.学号
    group by a.学号,b.姓名
    ) c
    order by 学号