两张表。。
然后通过这两张表建一张视图。。用于存储每个学生的分数总和
如果少了cname字段就会出问题。。加了就ok了。。求原因。

解决方案 »

  1.   

    当select语句中使用聚合函数sum,count,min,max,avg...
    时如果要按照其中没有使用聚合函数的列分组,
    那么group by语句里面就应该出现全部的未使用聚合函数的列,就你的语句看,
    group by s.id;
    报错,后面的sum(sscore)并不知道按照那个cname进行求和
      

  2.   

    最基本的group by 规则,group by 会让多行变成一行,
    试想,如果既未使用聚合函数,也不按它group by,多行如何变成一行?
    自己想想就会明白。
      

  3.   

    这个怎么说你才好呢、、、、GROUP BY里面出现的列才能在SELECT中出现 或者分组函数的列
      

  4.   

    这个真不好解释
    你价格max(cname) 就行了 
      

  5.   

    这是聚会函数的基本语法,建议看一下oracle基础知识
      

  6.   


    咋写?
    [
    code=SQL]
    select max(cname), sum(sscore) as total from tab_score s, tab_student c where s.cid = c.cid group by s.cid;还是有错。。
    [/code]