- ベストアンサー
アクセスのSUM関数について
アクセス初心者なのです. 現在,アクセスの学習をしているのですが, 下記の表から (1) 個人別合計を求める (2) 3科目合計が180点以下の一覧表を作成する (3) 科目別平均点の一覧表を作成する この3つを求めるためのSQLがわかりません. ご教授ねがいます. 学生番号 氏名 実用英語 情報科学 DB論 合計 12001 市原 望 70 68 85 12002 今井 忠 50 88 88 12003 内田 肇 75 82 81 12004 桶谷 操 86 94 50 12005 北村 雅史 93 62 68 12006 久野 穂高 69 59 69 12007 久保 貢 70 75 96 12008 久保田 和幸 82 78 59 12009 熊田 陽一 68 91 46 12010 小林 広一 100 48 99 12011 小原 奈美 59 75 98 12012 近藤 正孝 92 91 79 12013 近藤 陽平 49 52 70 12014 佐々木 敦 62 82 60 12015 猿渡 一恵 99 50 91 平均点
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
クエリで簡単にできますよ。 合計クエリ SELECT テスト点数.学生番号, テスト点数.氏名, テスト点数.実用英語, テスト点数.情報科学, テスト点数.DB論, [実用英語]+[情報科学]+[DB論] AS 合計 FROM テスト点数; 180点以下のリストクエリ SELECT テスト点数.学生番号, テスト点数.氏名, テスト点数.実用英語, テスト点数.情報科学, テスト点数.DB論, [実用英語]+[情報科学]+[DB論] AS 合計 FROM テスト点数 WHERE ((([実用英語]+[情報科学]+[DB論])<=180)); 科目平均クエリ SELECT Avg(テスト点数.実用英語) AS 実用英語の平均, Avg(テスト点数.情報科学) AS 情報科学の平均, Avg(テスト点数.DB論) AS DB論の平均 FROM テスト点数; クエリのSQLビューに打ち込めば出来ます。テーブル名とフィールド名は書き換えてくださいね。
その他の回答 (4)
- CHRONOS_0
- ベストアンサー率54% (457/838)
一応終わっているみたいですが 初心者ということなので最も大切な点を指定しておきますね アップされたテーブルは以下の点でデータベースのテーブルとしては落第です (1)同種のフィールドの繰り返しがある 合計することに意味があるような同種のフィールドはレコード内に並べず レコードを分けて縦に展開します (2)他のフィールドの値から演算で求まるものをフィールドとして持っている アップされたテーブルの合計のように他のフィールドから導き出せるものは フィールドとして持ちません、クエリで計算させます (3)学生番号だけに従属する氏名を同じテーブルに持っている 以上のことを考慮するとテーブルは以下のようになるでしょう (下では複数の試験に対応できるようにしています。これで1年分の集計などもできるようになります) [学生マスタ](学生番号、氏名、・・・) [得点表](学生番号、試験CD、科目CD、点数) [科目マスタ](科目CD、名称、・・・) [試験マスタ](試験CD、名称、実施年月日、・・・)
- Tasuke22
- ベストアンサー率33% (1799/5383)
ANo.1です。 どうやら分かっていないのは私の方でした。 失礼しました。
お礼
いえいえ. こちらこそ説明不足でした. 申し訳ありませんでした.
- areda
- ベストアンサー率42% (11/26)
>やっぱり点数を打ち込まないとできないんですかね… Accessのテーブルで質問内容のテーブルを作成されていると思ったのですが…別の所にデータベースが有り、それを参照すると言うことでしょうか? ちなみに下記の回答では テスト点数というテーブル名を作成し、その中に質問に含まれている学生番号~DB論までをフィールド名としております。
お礼
とりあえず,できました!! ご協力ありがとうございました.
- Tasuke22
- ベストアンサー率33% (1799/5383)
Accessとは何ぞや、の根本を勘違いされています。 SQL文だけで得られません。
お礼
そういう問題があるんですよ. だから,アクセスのSQL分で求めたいのです.
お礼
回答ありがとうございます. やっぱり点数を打ち込まないとできないんですかね…