-1

私は SQL が初めてで、次のクエリで助けが得られることを望んでいました。

私は3つのテーブルを持っています:

  • 学生(名前、学生ID);
  • 試験結果(module_code,student_id,grade);
  • プロジェクト (module_code,student_id,grade)。

学生の名前、学年、module_code を選択したいのですが、一部のモジュールには試験とプロジェクトの両方が関連付けられています。その場合は、プロジェクトと試験の平均値を採点したいと思います。それ以外の場合は、試験の成績だけです。

何か案は?

4

1 に答える 1

1
SELECT s.student_id, s.name, m.module_code, avg(m.grade) as grade from students s 
inner join 
(select module_code, student_id, grade from exam_results 
union all select module_code, student_id, grade from projects) as exam_module m 
on s.student_id = m.student_id
group by s.student_id, s.name, m.module_code
于 2013-03-12T14:08:53.813 に答える