Microsoft Access 掲示板

クロス集計クエリを、さらに集計?する方法はありますか?

5 コメント
views
4 フォロー

お世話になります!難しいことはわからないのに挑戦している最中です。

各店舗の日々の支払データを入力していき、クロス集計クエリで支払い項目ごとに集計しました。
実行時に「該当月」をパラメータで入力して、〇月分として集計しています。

            家賃 電気 ガス 水道 備品費 人件費 〇〇費 ・・・
エリア1 店舗1 
エリア1 店舗2 
エリア1 店舗3 

エリア2 店舗1 
エリア2 店舗2 
エリア2 店舗3 

これはこれで良いのですが、別パターンとして

               家賃 電気 ガス 水道 備品費 人件費 〇〇費 ・・・
エリア1 全店舗合計
エリア2 全店舗合計

のクエリも作成しました。

これは以下のエクセルの集計機能のように、一つにすることはできますか?

            家賃 電気 ガス 水道 備品費 人件費 〇〇費 ・・・
エリア1 店舗1 
エリア1 店舗2 
エリア1 店舗3 
エリア1の合計

また、このクエリの中で電気・ガス・水道の合計を出すことは可能でしょうか?
家賃 水道光熱費(電気+ガス+水道) 備品費 人件費 〇〇費 ・・・

よろしくお願いします

みみ
作成: 2022/06/24 (金) 12:37:26
通報 ...
1

最初のクエリをレコードソースとするレポートを作成して、グループ化/集計 の機能でグループフッターを表示させて、そこに集計テキストボックスを配置すれば簡単に実現できますが、それではだめですか。

Accessのレポートでグループごとに金額の合計を印刷する方法 | できるネット

クエリで実現するとなると2つのクエリをユニオンクエリで一つにまとめることになります。その場合は下記が参考になるでしょう。

クエリで小計行、合計行を表示する - hatena chips

また、このクエリの中で電気・ガス・水道の合計を出すことは可能でしょうか?

レポートなら、下記のようなテキストボックスを配置すればいいでしょう。

コントロールソース =[電気]+[ガス]+[水道料金]

クエリなら、下記のような演算フィールドを作成すればいいでしょう。

水道光熱費: [電気]+[ガス]+[水道料金]

2

ありがとうございます。一番簡単そうなレポートで試してみようかと思いましたが、クロス集計クエリからレポートを作成(ウィザード使おうとしました)することが出来ませんでした。理由がわからないですが、パラメータの入力を求めているからでしょうか? 選択可能なフィールド欄に何も表示されませんでした。

出来ればデータにしたいので、ユニオンクエリで一つにまとめる、というところをやってみたいと思います。またわからないこと質問させていただくかもしれませんがよろしくお願いします。

3

クロス集計クエリからレポートを作成するには、列見出しを固定する必要があります。下記を参考にしてください。

Accessのクロス集計で列を固定する - Qiita

4

列見出しを固定したら選択可能なフィールド欄に表示されるようになりました。ありがとうございます!
ただ、やはりレポートではなくデータにしたいのでやってみています。
ただ、列の見出しを固定できたことはクエりを実行した際にとても役に立ちました!
ありがとうございました。

5

エリア、店舗別のクロス集計クエリの名前が Q_エリア店舗別 で、 フィールドが、
エリア 店舗 家賃 電気 ガス 水道 備品費 人件費 〇〇費

エリア別のクロス集計クエリの名前が Q_エリア別 で、 フィールドが、
エリア 家賃 電気 ガス 水道 備品費 人件費 〇〇費

だとします。列見出しは固定済みとしまず。

下記のようなSQLで可能だと思います。

SELECT エリア, "" AS 計, 店舗, 家賃, 電気+ガス+水道 AS 水道光熱費, 備品費, 人件費, 〇〇費 FROM Q_エリア店舗別
UNION ALL
SELECT エリア, "計", "", 家賃, 電気+ガス+水道 AS 水道光熱費, 備品費, 人件費, 〇〇費 FROM Q_エリア別
ORDER BY エリア, 計, 店舗;