#707 | ユニオンクエリの結果をグループ集計するには? | クエリ | |
たとえば「tbl販売実績2020」というテーブルを元に、クエリで「商品コード」ごとの「1月」〜「6月」各月の合計を集計したい場合、次のようなSQL文の集計クエリを作ります(これはデザインビューでも簡単にできます)。 SELECT 商品コード, Sum([1月]) AS 1月合計, Sum([2月]) AS 2月合計, Sum([3月]) AS 3月合計, Sum([4月]) AS 4月合計, Sum([5月]) AS 5月合計, Sum([6月]) AS 6月合計 FROM tbl販売実績2020 GROUP BY 商品コード 一方、単一のテーブルではなく、同じ列構成の複数のテーブルをまとめて集計したい場合、たとえば「tbl販売実績2020」と「tbl販売実績2021」の2つのテーブルの合計を求めたいといった場合、集計クエリとユニオンクエリを組み合わせることで実現することができます。 それには、SQLビューにおいて、次のようなSQL文を直接記述します。 SQL文: SELECT 商品コード, Sum([1月]) AS 1月合計, Sum([2月]) AS 2月合計, Sum([3月]) AS 3月合計, Sum([4月]) AS 4月合計, Sum([5月]) AS 5月合計, Sum([6月]) AS 6月合計 FROM (SELECT 商品コード, [1月], [2月], [3月], [4月], [5月], [6月] FROM tbl販売実績2020 UNION ALL SELECT 商品コード, [1月], [2月], [3月], [4月], [5月], [6月] FROM tbl販売実績2021 ) AS QUNI GROUP BY 商品コード 作成のポイントは、まずは単一のテーブルで集計クエリのSQL文の枠組みを作り、「FROM」句の部分を丸ごと「ユニオンクエリ」のSQL文に書き換えることです(テスト的にユニオンクエリの部分だけを事前に別途作って試しておきコピー&ペーストしてもよいかもしれません)。 上記ではFROM句の次のあるカッコで囲まれた部分がユニオンクエリで、この部分だけでも単一のクエリとして成り立つものです。つまり、クエリの中にクエリがある、クエリのソース(FROM)としてクエリを指定していることになります。 実行結果: ■元の2つのテーブル ■クエリのデータシートビュー 【補足】
|
|||
|
Copyright © T'sWare All rights reserved |