6/10/2021

Access。複数の店舗別の月別売上高を月ごとに合算した集計表をつくりたい。【Spreadsheet】

Access。複数の店舗別の月別売上高を月ごとに合算した集計表をつくりたい。

<UNION:ユニオンクエリ>

店舗別で管理しているテーブルはあるのですが、これをどうやったら、まとめて集計することができるのでしょうか?


大きなテーブルがあるのならば、集計機能を使ったクエリならば、簡単に算出できますが、次のように複数のテーブルに分かれて管理してる場合はどのようにしたらいいのでしょうか?


今回は、「T横浜売上高」と「T新宿売上高」の二つのテーブルを月ごとに合算した表がほしいわけです。

新しいテーブルを用意して、それぞれのテーブルのデータを追加してもいいのですが、その場合、店舗数が多いなどデータが膨大だと、新しいテーブルが増えてしまうなど、ファイルサイズが大きくなりデメリットも見えてきます。


このような場合、ユニオンクエリをつかうことで、テーブルを合体(UNION)することができます。

そして、作成したユニオンクエリを基に、集計を行えばいいわけですね。


では、ユニオンクエリを作っていきます。


作成タブから一発で、ユニオンクエリを作ることができませんので、作成タブの「クエリデザイン」をクリックします。


クエリツールのデザインタブが表示されますので、クエリの種類にある「ユニオン」をクリックします。


画面が変わりました。

次のように入力します。


select * from T横浜売上高

UNION

select * from T新宿売上高

とりあえず、実行してみましょう。


テーブル同士が合体していることが確認できました。

このクエリに名前を付けて保存します。


あとは、集計をしていくわけですが、先に、ユニオンクエリを確認しておきましょう。


select * from T横浜売上高

UNION

select * from T新宿売上高


selectは、「選択クエリ」の意味です。*は「すべてのフィールド」で、from T横浜売上高が「T横浜売上高から」ということで、T横浜売上高の全てのフィールドをつかうという意味です。

そして、UNION。

UNIONは、「結合:合体」という意味です。


このあとに、結合したいテーブルを記入するわけです。


この文章は、SQL文ですが、このぐらいならば、入力するだけなので、SQLに詳しくなくても問題はないかと思います。


集計するクエリをつくって完成ですので、クエリデザインをつかって、クエリを作成していきます。


営業月フィールドと売上高フィールドを使います。

集計行を表示するために、「集計」ボタンをクリックします。


営業月フィールドごとに集計しますので、営業月フィールドには「グループ化」。売上高フィールドには「合計」を設定して完成です。

月別の合算数を算出した表(クエリ)をつくることができました。


今回のように、ユニオンクエリというのを知っていると、さらに幅が広がりますので、機会がありましたら使ってみると、作業効率が改善できるかもしれませんね。