1
Programme                     Student                      Grade
Pid (pk)                      StudentID(pk)                ModuleID(cpk)     
                              ProgrammeID(fk)              StudentID(cpk)
                                                           Gradepercent    

我有三个表,一个程序表,一个成绩表和一个学生表。我正在尝试获得每个程序的平均百分比成绩。问题是成绩表没有链接到程序表,仅通过学生表连接。程序表的主键是programid(student表中的fk)和student表中的studentid,并且在moduleid/studentid的成绩表中使用复合pk来标识成绩。(模块数据库中的第四个表包含不相关的 moduleid)

我如何进行查询以获取课程的 av 成绩?我假设有一种方法可以在不使用学生表的情况下做到这一点,类似于

SELECT AVG(Gradepercent) from grade AND group by ProgrammeID from programme

(语法错误)但更喜欢使用学生表通过他们的关系访问成绩表中的信息的查询。

关于如何解决这个问题的任何想法?我知道这不是很清楚,但如果有人能指出我正确的方向,那将有很大帮助。

(我有一个 ERD 可以使这篇文章更清晰,但由于某种原因,尽管我有 10 名声望,但我不允许发布它)。

提前致谢。

4

1 回答 1

2
SELECT Student.ProgrammeID, AVG(Grade.GradePercent)
FROM Student
INNER JOIN Grade ON Student.StudentID = Grade.StudentID
GROUP BY Student.ProgrammeID
于 2013-03-25T17:09:00.713 回答