2013-03-25 63 views
1
Programme      Student      Grade 
Pid (pk)      StudentID(pk)    ModuleID(cpk)  
           ProgrammeID(fk)    StudentID(cpk) 
                  Gradepercent  

我有三个表,一个节目表,成绩表和学生表。我试图得到每个节目的平均百分比等级。问题是,成绩表没有链接到程序表,只有学生表连接。主键是节目表(学生表中的fk)的programmeid,在学生表中studentid,并且在moduleid/studentid的成绩表中使用复合pk来标识成绩。 (模块数据库中的第四个表包含模块ID,这是不相关的)SQl查询通过另一个表

我该如何去查询以获得程序的AV等级?我假设有一个办法做到这一点不使用student表,一些沿

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

(synthax误差)的线,但希望它使用学生访问表中的成绩表中的信息查询通过他们的关系。

关于如何去做这个的任何想法?我明白,这不是很清楚,但如果有人能指引我正确的方向,这将有很大帮助。

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

在此先感谢。

回答

2
SELECT Student.ProgrammeID, AVG(Grade.GradePercent) 
FROM Student 
INNER JOIN Grade ON Student.StudentID = Grade.StudentID 
GROUP BY Student.ProgrammeID 
+0

非常感谢上百万。 – 2013-03-25 17:16:02

+0

优秀;我很高兴它的工作!你原来的问题问你是否可以跳过'Student'表,但是你不能这样做,因为'Student'是'Programme'与'Grade'的关系。这对你有意义吗?但愿如此;这是一个重要的概念。如果现在没有意义,不要惊慌 - 当你通过其他查询工作时,它会变得清晰起来:) – 2013-03-25 17:29:17