本帖最后由 a418857308 于 2014-08-05 20:09:23 编辑

解决方案 »

  1.   

    如果有班级ID直接对应年级的,这你SQL语句就没法写了吧!这样的话,你去写存储过程把!
      

  2.   

    相当于这样  ID 10  Name 小K  分数 50  班级ID 1
      

  3.   

    SELECT CC.NAME, SUM(SS.MARK)
      FROM (SELECT SI.CLASSID, SUM(SI.MARK) MARK
              FROM SCOREINFO SI
             GROUP BY SI.CLASSID) SS,
           CLASSINFO CI,
           CLASSINFO CC
     WHERE SS.CLASSID = CI.ID
       AND CI.PARENT = CC.ID
       AND CC.PARENT = 0
     GROUP BY CC.NAME ;我这样实现的。
    向楼主说的,成绩表里有一个人的id直接对应年级,虽然我觉得id只是个序列不可能对应年级id,但是不影响统计啊,我的想法就是只根据成绩表里的班级id判定他的年级
      

  4.   


    SELECT
    a.name,
    sum(c.)
    FROM
    班级表 a
    INNER JOIN
    班级表 b ON b.parent=a.id
    INNER JOIN
    成绩表 c ON c.clazId=b.id
    GROUP BY
    a.name
      

  5.   


    SELECT
    a.name,
    sum(c.)
    FROM
    班级表 a
    INNER JOIN
    班级表 b ON b.parent=a.id
    INNER JOIN
    成绩表 c ON c.班级ID=b.id
    GROUP BY
    a.name