は、今私は、学生の情報と
出力はこのようにする必要があり、単一のレコード内のすべての3年間のマークが含まれているクエリをデザインしたいマークテーブルの3のエントリを持つことになります三年から学生すなわち、毎年のために保存されています。
First Name | Last Name | 1st Year Marks | 2nd Year Marks | 3rd Year Marks
は、今私は、学生の情報と
出力はこのようにする必要があり、単一のレコード内のすべての3年間のマークが含まれているクエリをデザインしたいマークテーブルの3のエントリを持つことになります三年から学生すなわち、毎年のために保存されています。
First Name | Last Name | 1st Year Marks | 2nd Year Marks | 3rd Year Marks
私はあなたのネストされた文はどのようなものかわかりませんが、あなたはこの線に沿って何かをしたい:
select
s.firstname,
s.lastname,
sum(case when m.year = m2.minyear then m.mark else 0 end) as `1st Year Marks`,
sum(case when m.year = m2.minyear+1 then m.mark else 0 end) as `2nd Year Marks`,
sum(case when m.year = m2.minyear+2 then m.mark else 0 end) as `3rd Year Marks`
from
students s
inner join marks m on
s.student_id = m.student_id
inner join (select student_id, min(year) as minyear from marks group by student_id) m2 on
s.student_id = m2.student_id
group by
s.firstname,
s.lastname
私はここで、条件付き合計だけでなく、ダイナミック年間、学生は可能性があるのでをしました異なる時に到着する。これは、 "Freshman"、 "Sophomore"などのような年表があれば簡単になり、学生がその年をいつ完成したかを記録していますが、これはうまくいくでしょう。
クエリ以下の試みは..私は学生やマークが列
選択stu.firstname +でsstudent IDを持って検討しています '|' + stu.lastname + '|' + marks.1styr + '|' + mark.2nd yr + '|' + marks.3rdyr from stu、marks stu.uniqueid = marks.uniqueid
SQLステートメントを投稿した方が助けになるでしょう。 – Aaron
少なくとも、テーブルの完全定義 – jclozano