• 締切済み

クロス集計クエリで・・・

Windows2000/Access2000を使用してます。 クロス集計クエリで質問です。 支店別で車種別の件数を登録月ごとに出したいのですが、そのような設定は出来るのでしょうか? 抽出条件をどのように設定したらイイのか分かりません。 宜しくお願いします。

みんなの回答

回答No.2

クロス集計のイメージは分かりました。 やって出来なくはないのですが、クエリがひどく複雑になります。こういった作業はExcelなどの表計算ソフトでやった方が良いのではないでしょうか。 また、データベースソフトを使用するにしても、最終行に合計値を持ってくるところなどは、フォームなりの機能を使った方が簡単です。 ともあれクエリを使って出きる所までやってみました。 以下のようにクエリ0から5までをつくると、クエリ5が目的のようになるかと思います。 クエリ0に表示したい月と年を書きこみます。 クエリ4に支店名が全部並んでいて、あまり綺麗ではないのですが、私の思いつくのはこのへんまでです。 クエリ0 SELECT * FROM テーブル1 WHERE 登録月=8 AND 登録年=2002 *クエリ1 TRANSFORM Count([登録月]) SELECT [車種] FROM クエリ0 GROUP BY [車種] PIVOT [支店]; *クエリ2 SELECT 車種, Count(登録月) AS 件数 FROM クエリ0 GROUP BY 車種; *クエリ3 SELECT クエリー1.*, クエリー2.件数 FROM クエリー1 LEFT JOIN クエリー2 ON クエリー1.車種 = クエリー2.車種; *クエリ4 SELECT "件数", Sum([支店名A]), Sum([支店名B]), Sum([支店名C]), Sum([件数]) FROM クエリ3; *クエリ5 SELECT * From クエリ3 UNION SELECT * From クエリ4;

renault
質問者

お礼

おはようございます。 アドバイス有難うございました。 まだ設定は出来てませんが、教えて頂いた方法で一度やってみてエクセルなどでするか考えてみます。 有難うございました。

回答No.1

テーブルがどんな形なのか分からないし、クロス集計もどんなものを望んでいられるのかわかりませんので、参考になりそうな例をしめします。 まずテーブルが下のような構造になっていて、 登録月|支店|車種|件数|・・・・・ 行見出しに支店と車種、列に登録月を持ってくるのならば、 クエリーは以下のようになります。 TRANSFORM Sum(件数) AS x SELECT 支店, 車種 FROM テーブル1 GROUP BY 支店, 車種 PIVOT 登録月;

renault
質問者

補足

おはようございます。 説明が不充分ですいませんでした。 テーブルは 支店名|車種|登録年|登録月|・・・・・ になってます。 で、登録月ごとに |支店名A|支店名B|支店名C|件数 | 車種1| 2 | 3 | 1 | 6 | 車種2| 1 | 2 | 2 | 5 | 件数 | 3 | 5 | 3 | 11 | こんな感じのクロス集計にしたいのです。 分かりにくい説明で申し訳ございませんが、宜しくお願いいたします。

関連するQ&A