dポイントプレゼントキャンペーン実施中!

アクセスクロス集計のことですが、下記のような場合
     合計 4月 5月 6月
山田太郎 100円 20円 50円 30円
山田花子 130円 50円 50円 30円
山崎百恵 180円 100円 50円 30円

このような表を使っていますが、この一番下に月別集計を表示したいのですが、これをクエリにうまく書く方法がありますか。つまり1つのSQLで表示する方法。

#素人で、クエリはウイザードで作ったものに一部where句を追加したりしかできません。
#実務的には クロス集計のSQLをaspにて表示しています。
#質問の仕方に自信なし。

A 回答 (2件)

「回答に対する補足」にあるクロス集計クエリーに、例えばクエリ1という名前を付けて保存します。


そしてそのクエリーを参照した下のクエリーを新しく作ればよいと思います。

SELECT * FROM クエリ1 UNION ALL SELECT "合計",SUM([合計 count]), SUM([1月]), SUM([2月]), SUM([3月]),SUM([4月]),SUM([5月]), SUM([6月]), SUM([7月]), SUM([8月]), SUM([9月]), SUM([10月]), SUM([11月]), SUM([12月]) FROM クエリ1;

クエリ1の部分を、「補足」のクエリー内容で置き換えても良いとは思いますが、やたら長くなります。
    • good
    • 0

「UNION ALL」を使ってみてはいかがでしょうか?



SELECT
 名前,
 4月 + 5月 + 6月 AS 合計,
 4月,
 5月,
 6月
FROM テーブル
UNION ALL
SELECT
 '合計',
 SUM(4月 + 5月 + 6月),
 SUM(4月),
 SUM(5月),
 SUM(6月)
FROM テーブル

この回答への補足

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

他力本願で申し訳ありませんが、もしもよろしければ、下記の修正方法がわかりましたらアドバイスを。 (^^;

TRANSFORM Sum(マスター.count) AS countの合計
SELECT マスター.氏名, Sum(マスター.count) AS [合計 count]
FROM マスター
GROUP BY マスター.氏名
PIVOT Format([年月日],"oooo") In ("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");

補足日時:2002/05/27 17:33
    • good
    • 0

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