• ベストアンサー

ACCESSのクエリ

いつもお世話になってます。 今回はACCESSのSQLのクエリについて質問します。 テーブルAを日付ごとにテーブルBのようにしたいのですがどうすれば良いでしょうか? テーブルA ID  日付  商品  個数 1   1/1  ドコモ  10 2   1/1  AU   11 3   1/1  ソフト  12 4   1/2  ドコモ   5 5   1/2  AU    4 6   1/2  ソフト   3 ・ ・ ・ テーブルB 日付   ドコモ  AU  ソフト 1/1    10    11   12 1/2     5    4    3 ・ ・ ・ わかりにくい説明かもしれませんがよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

#2です。もっと簡単なSQLがありました。 SELECT 日付, SUM(IIF(商品="ドコモ", 個数, 0)) AS ドコモ, SUM(IIF(商品="AU", 個数, 0)) AS AU, SUM(IIF(商品="ソフト", 個数, 0)) AS ソフト FROM テーブルA GROUP BY 日付;

sako77
質問者

お礼

2回も答えて下さってありがとうございます。 希望通りの結果が出ました。 ありがとうございました。

その他の回答 (3)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.4

クロス集計クエリを作ります。 クエリをデザインから作成します。テーブルAを表示させておきます。 クエリの種類をクロス集計にします。 テーブルA内の「日付」をダブルクリックし、行列の入れ替えを行見出しへ テーブルA内の「商品」をダブルクリックし、行列の入れ替えを列見出しへ テーブルA内の「個数」をダブルクリックし、行列の入れ替えを値、集計を合計へ クエリの表示をデータシートビューにして表示を確認します。 よければクエリを保存します。

sako77
質問者

お礼

参考にさせて頂きます。 ありがとうございました。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

商品ごとに個数のフィールドを分けてから集計すれば可能です。 SELECT 日付, SUM(F1) AS ドコモ, SUM(F2) AS AU, SUM(F3) AS ソフト FROM (SELECT 日付, IIF(商品="ドコモ", 個数, 0) AS F1, IIF(商品="AU", 個数, 0) AS F2, IIF(商品="ソフト", 個数, 0) AS F3 FROM テーブルA) GROUP BY 日付;

  • BookerL
  • ベストアンサー率52% (599/1132)
回答No.1

Access2002 以降であれば「ピボットテーブル」が使えます。 http://riko.s235.xrea.com/Excel-VBA/excel4-10-007.html

sako77
質問者

お礼

ピボットテーブルの名前は聞いたことはありましたがこういう事もできるんですね。参考にさせていただきます。ありがとうございました。

関連するQ&A