Access。クエリで平均以上を抽出する方法をご紹介
<Access>
以外に簡単そうに思えて、出来ないものというのがAccessには結構ありまして、
Excelだと平均を求めようとしたら、AVERAGE関数を使うなんていうのが、
すぐ頭に思い浮かぶことでしょう。
Accessにも、Ave関数というのがあることはあるのですが、
今回ご紹介したい内容では、使えない。
で、どのようなケースなのかというと、
次のような顧客ごとの金額合計値を求めた、Q合計クエリというのがありまして、
例えば、金額の合計フィールドで10万円以上とか、
5万円以下ということならば、抽出条件で
>=100000
とか
<=50000
を設定すれば、いいわけでして、
この場合は特に困るコトはないと思われますが、
例えば金額の合計フィールドの平均以上だけを
抽出したいとしたらどのようにしたらいいのでしょうか?
というのを今回ご紹介していきます。
先ほども書きましたが、
Excelだったら、AVERAGE関数なんてことをイメージしたいところですが、
そういうわけにはいかないので、別の方法を考える必要があるのです。
まずは、このQ合計をデザインビューで確認してみましょう。
顧客ごとに集計するために、集計を使い、
金額フィールドの合計を【金額の合計】フィールドとして、
合計で集計してあります。
そこで、今回のように平均以上とかの【平均】の抽出には、
DAvg関数と比較演算子を組み合わせる事によって、
平均以上とかの条件で抽出することが出来ます。
では、早速作っていきましょう。
まずは、クエリからクエリを作成しますので、
F12キーを使って、クエリの名前を付けます。
今回は、Q合計平均以上というクエリにします。
クエリからクエリを作成する場合に、先に名前をつけて置きませんと、
上書きしてしまって、前のクエリが壊れてしまうことがありますので、
注意が必要ですね。
金額の合計フィールドの抽出条件にDAvg関数を設定します。
今回は以上ですので>=をつけますが、ここでAccessがExcelと違うポイント。
それは、絶対に、直接入力。つまり半角で入力する必要があるということです。
全角で入力してしまうと、うまくいきませんので、ご注意ください。
では、抽出条件に次のようにDAvg関数を使って入力します。
>=DAvg("[金額の合計]","Q合計")
これで、OKですので、結果を表示してみましょう。
これで、平均以上という条件で抽出することが出来ました。
このDave関数の引数は、
DAvg(フィールド, テーブル, 条件)となっていますので、
テーブル-フィールドという順番ではありませんので、順番に気をつけましょう。