電子書籍の厳選無料作品が豊富!

ACCESS2010を利用してます

添付ファイルのようにクエリを作成しました。
下記のように表示されます

   4/1  4/2  4/3
名前  1   2   6
名前  4   7   8



   4/1  4/2  4/3 合計
名前  1   2   6  9
名前  4   7   8  19

と言うように合計を表示させたい場合はどのように記述するのでしょうか?

また

   4/1  4/2  4/3 合計
名前  1   2   6  9
名前  4   7   8  19
合計  5   9   14 28

また、日付ごとの合計も自動的にできるのでしょうか?

「ACCESSのクロス集計クエリの質問です」の質問画像

A 回答 (1件)

画像が見えないので、


値部分が、カウントなのか、合計なのかわからないので、合計するものとします。
また、フィールド名等わからないので
名前、日付、数量のフィールドがあるテーブル ★★ と仮定します。
(日付:日付/時刻型、数量:数値型)

以下をクエリのSQLビューに記述して表示してみます

TRANSFORM Sum(数量) AS 値
SELECT 名前, Sum(数量) AS 合計 FROM (
SELECT 0 AS T, 名前, 日付, 数量 FROM ★★
UNION ALL
SELECT 1, '合計', 日付, 数量 FROM ★★) AS Q1
GROUP BY T, 名前
PIVOT Format(日付,'mm/dd');

※ 日付部分は 04/01 04/02 の様にしています。
Format で 'm/d' とすれば 4/1 4/2 になりますが、
9月→10月とか、9日→10日とかあった際、フィールド並びが崩れると思います。

※ SELECT 名前, Sum(数量) AS 合計 FROM ( 
  の Sum(数量) AS 合計 が横の合計
※ 同じデータで、
  名前を '合計' に変更して UNION ALL したのが縦の合計用

SELECT 0 AS T, 名前, 日付, 数量 FROM ★★
UNION ALL
SELECT 1, '合計', 日付, 数量 FROM ★★

※ 0 AS T / 1 部分は、
 従来の名前でのグループ化と合計用の並び順を指定しているだけ

GROUP BY T, 名前

(名前と名前の間に合計が来ないように)
( 0 / 1 には意味はなく、合計用の方が大きければ OK )
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございました。

お礼日時:2015/06/18 23:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!