[Access 2016/2013/2010/2007]
「○年○月○日~○年○月○日」などと期間を限定してデータを取り出し、集計したいことがあります。ここでは、データを抽出して集計する方法を解説します。また、「集計データの抽出」と「抽出データの集計」の違いについても説明します。なお、クエリでの集計の手順については、「【初心者向け】クエリで集計する基本の基本」を参照してください。
指定した期間のデータを集計するには
ここでは、図1の[T_受注]テーブルから、2017年9月の金額データだけを担当者別に集計します。
まずは、[担当者]フィールドをグループ化して[金額]フィールドを合計する集計クエリを作成します(図2)。この時点では抽出条件を指定していないので、全レコードが集計されます。
集計クエリで抽出条件を指定するには、抽出対象のフィールドの[集計]欄で[Where条件]を指定します。[Where条件]を指定したフィールドは、データシートビューには一切表示されない、条件設定専用のフィールドになります。2017年9月のデータを集計するには、[Where条件]を指定したフィールドの[抽出条件]欄に「Between #2017/09/01# And #2017/09/30#」を入力します(図3)。
このクエリを実行すると、2017年9月のデータだけを集計できます。
「集計データの抽出」と「抽出データの集計」の違い
集計クエリで抽出条件を設定するときは、データを集計してから抽出を行うのか、データを抽出してから集計を行うのか、きちんと意識しないと思わぬ結果になることがあります。
下図の(A)のクエリと(B)のクエリの違いがわかるでしょうか?
(A)データを集計してから抽出する
(A)のクエリでは、データの集計結果から抽出が行われます。全レコードを集計した結果から、[合計金額]が「1,000,000以上」であるレコードが抽出されます。図7の右側のデータシートが、(A)のクエリの実行結果です。
(B)データを抽出してから集計する
(B)のクエリでは、データの抽出結果から集計が行われます。テーブルから[金額]が「1,000,000以上のレコードが抽出され、抽出されたレコードが集計されます。図8の右側のデータシートが、(B)のクエリの実行結果です。