アプリ版:「スタンプのみでお礼する」機能のリリースについて

accessにて、毎週行うテストの成績管理を作成しようと思っています。

T_成績
ID 試験回 科目 点数
1  10   1  80
1  10   2  70
1  11   1  60
1  11   2  75
2  10   1  80
2  10   2  75
2  11   1  95
2  11   2  65
3  10   1  45
3  10   2  55

上記のようなテーブルから各生徒のIDと科目ごとに
最高点を表示するため下記のようにしました。

SELECT T_成績.ID, T_成績.科目, max(T_成績.点数) AS 最高点
FROM T_成績
GROUP BY T_成績.ID, T_成績.科目

結果
ID 科目 最高点
1  1  80
1  2  75
2  1  95
2  2  75
3  1  45
3  2  55

これだと、第何回の試験で取った点数かが分からないので下のように

ID 試験回 科目 最高点
1  10   1  80
1  11   2  75
2  11   1  95
2  10   2  75
3  10   1  45
3  10   2  55

最高点を取った時の試験回も表示したいのですが、
うまくいきません。どのようにすればよいのでしょうか?
よろしくお願いします。

A 回答 (3件)

あらかじめ



SELECT T_成績.ID, T_成績.科目, max(T_成績.点数) AS 最高点
FROM T_成績
GROUP By T_成績.ID, T_成績.科目

クエリを成績集計クエリとして作成しておくこと
_____________________________________________________________

SELECT DISTINCT T_成績.Id, T_成績.試験回, T_成績.科目, 成績集計クエリ.最高点
FROM T_成績 INNER JOIN 成績集計クエリ ON (T_成績.Id = 成績集計クエリ.ID) AND (T_成績.科目 = 成績集計クエリ.科目) AND (T_成績.点数 = 成績集計クエリ.最高点)
ORDER BY T_成績.Id, T_成績.試験回, T_成績.科目;

___________________________________________________________
の連結で OKです。
コピーして実験してください。
実験済みです。
    • good
    • 0
この回答へのお礼

ご丁寧なお答え、ありがとうございます。
おかげさまで、上記の文でうまく出来ました。
1日悩んだのですが、答えを見ると基本的なことですね。
勉強になりました。ありがとうございます。

お礼日時:2007/05/14 23:04

サブクエリを使えばクエリひとつでも実現できますが


せっかく集計クエリまで作ったのなら
集計クエリと元のテーブルをクエリデザインビューに取り込み
IDと科目で結合してもいいですね
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、結合させればよかったのですね。
勉強不足のため、まったく気が付きませんでした。
大変勉強になりました。
ありがとうございます。

お礼日時:2007/05/14 21:55

例えば、最高得点が同一の回があった場合はどうするのですか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す