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判定他的年级
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
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
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判定他的年级
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
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