Microsoft Access 掲示板

成績原簿DBの特定条件のクエリ作成方法について

2 コメント
views
4 フォロー

学生の成績を管理するDBがあり、特定の条件のクエリ作成方法について伺います。

【質問の前提】
●テーブル情報(フィールドは全てテキスト型とします。)
1.学生テーブル
学生番号 氏名
1001 太郎
1002 次郎
1003 三郎
2.成績テーブル
成績コード
学生番号 科目 成績 修得年度
1 1001 国語 A 2019
2 1001 理科 D 2019
3 1002 国語 B 2019
4 1002 理科 A 2019
5 1002 社会 D 2018
6 1003 算数 D 2018
●リレーション
画像1

●クエリ1_特定修得年度成績一覧(SQL)
画像1

SELECT 学生テーブル.学生番号 AS 学生テーブル_学生番号, 学生テーブル.氏名, 成績テーブル.成績コード, 成績テーブル.科目, 成績テーブル.成績, 成績テーブル.修得年度
FROM 学生テーブル LEFT JOIN 成績テーブル ON 学生テーブル.[学生番号] = 成績テーブル.[学生番号]
WHERE (((成績テーブル.修得年度)="2019"));

出力結果
学生番号 氏名 成績コード 科目 成績 修得年度
1001 太郎 1 国語 A 2019
1001 太郎 2 理科 D 2019
1002 次郎 3 国語 B 2019
1002 次郎 4 理科 A 2019

【質問】
クエリ1の出力結果をもとに、以下のような各学生のクエリ1の出力数を学生番号に紐づけてカウントしたい。

クエリ2_特定修得年度成績取得カウント
学生番号 氏名 取得済成績
1001 太郎 2
1002 次郎 2
1003 三郎 0
SELECT 学生テーブル.
, "★" AS 取得済成績
FROM 学生テーブル;

上記の「取得済成績」を集計するような関数の記述方法("★"内の記述)をお教えいただきたいです。
SQLをそのままおしえていただいてもかまいませんが、可能であればクエリのデザインビュー例も合わせてご提示いただけると大変助かります。

A.A
作成: 2021/01/14 (木) 13:30:43
最終更新: 2021/01/14 (木) 16:31:46
通報 ...
1
hiroton 2021/01/14 (木) 15:38:29 957cc@f966d

1.学生テーブル

SELECT 学生マスタ., "★" AS 取得済成績
FROM 学生マスタ;

学生マスタとは何者でしょう?


学生の情報が抜け落ちてしまっているクエリ1をつかって計算させるのはめんどくさいです。専用にクエリを作り直してしまったほうがいいでしょう

SELECT 学生テーブル.学生番号, 学生テーブル.氏名, Nz(Sum(IIf([修得年度]="2019",1)),0) AS 取得済成績
FROM 学生テーブル LEFT JOIN 成績テーブル ON 学生テーブル.学生番号 = 成績テーブル.学生番号
GROUP BY 学生テーブル.学生番号, 学生テーブル.氏名;

これは、ACCESSのデザインビューで作成したクエリをそのままSQLビューで表示したものです。SQLビューに張り付けてデザインビューに切り替えれば「クエリのデザインビュー例」が確認できます

2

hiroton様
失礼しました、学生マスタとは学生テーブルの打ち間違いです*本文を修正いたしました。

SQLについて確認いたしました、想定していた挙動どおりです。
迅速にご教示いただき誠にありがとうございました。