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

プログラムテーブル、成績テーブル、学生テーブルの3つのテーブルがあります。各プログラムの平均パーセンテージの成績を取得しようとしています。問題は、成績表がプログラム表にリンクされておらず、学生表によってのみ接続されていることです。主キーはプログラムテーブルのprogrammeid(学生テーブルのfk)と学生テーブルのstudentidであり、複合pkはmoduleid/studentidのグレードテーブルでグレードを識別するために使用されます。(関連性のないmoduleidを含むデータベースの4番目のテーブルをモジュール化します)

プログラムのAV成績を取得するためのクエリを作成するにはどうすればよいですか?学生テーブルを使わずにそれを行う方法があると思います。

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

(synthaxエラー)ただし、studentテーブルを使用して、関係を通じて成績テーブルの情報にアクセスするクエリを優先します。

これについてどうやって行くかについてのアイデアはありますか?これはあまり明確ではないことは理解していますが、誰かが私を正しい方向に向けることができれば、それは大いに役立ちます。

(私はこの投稿をより明確にする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 に答える