我正在创建一个解决方案,该解决方案将按年级计算特定bmi身份的学生百分比。我做了一个表student_info,用于存储学生,还有多个表g1,g2,g3,g4,g5,g6和kinder,用于存储学生的bmi统计信息。我尝试过
SELECT
si.grade AS 'Grade Level', g4.fstat AS 'Status',
(SELECT COUNT(si.lrn) * 100.0 / (SELECT COUNT(*) FROM student_info)) AS 'Total'
FROM
student_info AS si, g4
GROUP BY
g4.fstat, si.grade
我只是从g4表中获取结果,但是我想将所有7个表连接起来以对它们全部进行计算。感谢帮助
答案 0 :(得分:0)
您只会得到g4
表的结果,因为这是您选择的唯一表。假设您在每个年级都有相同的表结构,并且没有一个以上年级的学生,那么我首先将他们结合在一起,就像这样:
Select 'K' as grade, * from kinder
union all
Select '1' as grade, * from g1
union all
Select '2' as grade, * from g2
....等其他表格。
然后使用该联合的结果(作为表或临时表或CTE),而不仅仅是查询中的表g4
。
答案 1 :(得分:0)
您想联接所有7个表,但是联接在哪里?您正在按g4.fstat和si.grade进行分组,但是我看不到任何其他代码可以从其他表中提取任何内容。如果要查看结果,需要将所有表连接到它们的公共字段,并将这些连接的字段添加到选择的表中。