お世話になっております。
毎度つたない説明、対応で申し訳ありませんが、
ご教授いただける方いましたらよろしくお願い致します。
下記の3つのテーブルで、
m_kyouka
kyouka_id name
1 国語
2 数学
3 理科
4 社会
5 英語
t_score
id name comment
11 赤井 あかい
22 青葉 あおば
33 白木 しらき
44 田中 たなか
55 佐藤 さとう
66 生田 いくた
77 長門 ながと
88 浅井 あさい
99 沢村 さわむら
100 近藤 こんどう
101 松本 まつもと
102 清水 しみず
103 大竹 おおたけ
104 内藤 ないとう
105 水木 みずき
106 橋本 はしもと
107 陸奥 むつ
108 如月 きさらぎ
109 睦月 むつき
110 加賀 かが
t_score
id seito_id kyouka_id score
1 11 1 50
2 22 1 80
3 33 1 23
4 44 1 32
5 55 1 90
6 11 1 45
7 77 1 66
8 88 1 57
9 99 1 70
:
:
※t_scoreは長くなってしまうので割愛させていただきます。
いくつかseito_idがダブってる箇所があります。
例 seito_id 11(赤井) が kyouka_id 1(国語)の
テストを二回受けているといった感じです。
上記条件で、全生徒の全教科表示させる。
ただし、ダブってるものがあればスコアの平均値を出し
データがない科目があれば0と表示させたいのですが・・・
例)名前 国語 数学 理科 社会 英語
赤井 64 47 25 74 27
青葉 82 37 56 0 65
例として↑のような形に表示させたいのです。
コードとしては↓のように作り,
lang
1select se.name, 2avg(score) "国語", 3avg(score) "数学", 4avg(score) "理科", 5avg(score) "社会", 6avg(score) "英語" 7from t_score sc,t_seito se 8where sc.seito_id=se.id 9group by sc.seito_id
抽出データはこちら↓
name 国語 数学 理科 社会 英語
青葉 64.5000 64.5000 64.5000 64.5000 64.5000
陸奥 52.2500 52.2500 52.2500 52.2500 52.2500
:
:
:
ただ、全教科の生徒別平均値を表示させるだけで
教科別平均値やデータのない箇所を0として表示させることができず、
うまくできません。
どのようにすれば各教科別で表示させることができるのか
ご教授いただける方いましたらよろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー