查询有二门以上(含两门)不及格课程的学生姓名及其总成绩。
select sname,sum(grade) sumgrade
from student,sc
group by sname
where count(sno)>student.sno in (select sno from sc where grade<60) 服务器: 消息 156,级别 15,状态 1,行 4
在关键字 'where' 附近有语法错误。

解决方案 »

  1.   

    sorry,It  should beselect sname,sum(grade) sumgrade
    from student,sc
    group by sname
    where student.sno in (select sno from sc where grade<60) 
      

  2.   

    select sno,sname,sum(grade) ,sum(case when grade <60 then 1 else 0 ) from student ,sc where student.sno=sc.sno group by sno,sname
    having sum(case when grade <60 then 1 else 0 )>1
      

  3.   

    select   student.sno,student.sname,sum(grade)   ,sum(case   when   grade   <60   then   1   else   0   end)   from   student   ,sc   where   student.sno=sc.sno   group   by  student.sno,student.sname
    having   sum(case   when   grade   <60   then   1   else   0   )> 1 
      

  4.   

    select sname,sum(grade) sumgrade
    from student,sc
    where student.sno in (select sno 
    from sc 
    where grade<60
    group by sno 
    having count(*)>1) 
    group by sname
      

  5.   

    [select sname,sum(grade) sumgrade
    from student,sc
    where student.sno=sc.sno and student.sno in (select sno 
                from sc 
                where grade<60
                group by sno 
                having count(*)>1) 
    group by sname