【初心者向け】集計クエリでの抽出の基本

[Access 2016/2013/2010/2007]

「○年○月○日~○年○月○日」などと期間を限定してデータを取り出し、集計したいことがあります。ここでは、データを抽出して集計する方法を解説します。また、「集計データの抽出」と「抽出データの集計」の違いについても説明します。なお、クエリでの集計の手順については、「【初心者向け】クエリで集計する基本の基本」を参照してください。

スポンサーリンク

指定した期間のデータを集計するには

ここでは、図1の[T_受注]テーブルから、2017年9月の金額データだけを担当者別に集計します。

図1 2017年9月のデータを集計したい。

まずは、[担当者]フィールドをグループ化して[金額]フィールドを合計する集計クエリを作成します(図2)。この時点では抽出条件を指定していないので、全レコードが集計されます。

図2 [担当者]フィールドで[グループ化]、[金額]フィールドで[合計]を指定して、担当者ごとに金額を集計するクエリを作成する。

集計クエリで抽出条件を指定するには、抽出対象のフィールドの[集計]欄で[Where条件]を指定します。[Where条件]を指定したフィールドは、データシートビューには一切表示されない、条件設定専用のフィールドになります。2017年9月のデータを集計するには、[Where条件]を指定したフィールドの[抽出条件]欄に「Between #2017/09/01# And #2017/09/30#」を入力します(図3)。

図3
1)[受注日]フィールドを追加する。
2)[集計]欄で[Where条件]を選択する。
3)[表示]のチェックが自動で外れる。
4)「Between #2017/09/01# And #2017/09/30#」を入力する。

このクエリを実行すると、2017年9月のデータだけを集計できます。

図4 2017年9月のデータを集計できた。

「集計データの抽出」と「抽出データの集計」の違い

集計クエリで抽出条件を設定するときは、データを集計してから抽出を行うのか、データを抽出してから集計を行うのか、きちんと意識しないと思わぬ結果になることがあります。

下図の(A)のクエリと(B)のクエリの違いがわかるでしょうか? 

図5 [合計]のフィールドに抽出条件を入力。

図6 [Where条件]のフィールドに抽出条件を入力。

(A)データを集計してから抽出する

A)のクエリでは、データの集計結果から抽出が行われます。全レコードを集計した結果から、[合計金額]が「1,000,000以上」であるレコードが抽出されます。図7の右側のデータシートが、(A)のクエリの実行結果です。

図7 (A)のクエリを実行すると、全レコードを集計した結果(左図)から、「1,000,000以上」のレコードが抽出される(右図)。

(B)データを抽出してから集計する

B)のクエリでは、データの抽出結果から集計が行われます。テーブルから[金額]が「1,000,000以上のレコードが抽出され、抽出されたレコードが集計されます。図8の右側のデータシートが、(B)のクエリの実行結果です。

図8 (B)のクエリを実行すると、テーブルから「1,000,000以上」のレコードが抽出され(左図)、抽出されたデータが集計される(右図)。

スポンサーリンク

関連記事