• ベストアンサー

アクセスの集計について

アクセスのクエリで、伝票番号でグループ化し、その横に、商品番号を並べたいです。 ★元テーブル★(名前:商品テーブル) 伝票番号 商品番号 1163069 AA01232 1168453 AAAA674 1168453 BBBB916 1174348 AA04041 1174348 BB04045 1174348 CC04041 ★作りたい状態★ 伝票番号 新商品番号 1163069 AA01232 1168453 AAAA674、BBBB916 1174348 AA04041、BB04045、CC04041 ★現状★ 伝票番号 新商品番号 1163069 AA01232、AA01232 1168453 AAAA674、BBBB916 1174348 AA04041、CC04041 SQLは、 SELECT 商品テーブル.伝票番号, First([商品番号]) & "、" & Last([商品番号]) AS 新商品番号 FROM 商品テーブル GROUP BY 商品テーブル.伝票番号; です。 first、lastが別に使いたいわけじゃないのですが、 他に方法がわからなくて使いました。 しかし、これだと、2つまでしか表示できないし、1つのものも 2つ表示されてしまって困っています。 わかりにくい質問で申し訳ありませんが、教えてください(^^)

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

並べる順番は商品番号の文字コード順でいいでしょうか だったらクエリで下のような式フィールドを作り 列名:"商品番号" & DCount("*","商品テーブル","伝票番号=" & 伝票番号 & " and 商品番号<='" & 商品番号 & "'") これをクロス集計クエリに変えて 伝票番号:行見出し 列名:列見出し 商品番号:値:先頭 伝票番号は数値型と仮定しています。テキストのときは商品番号のように「'」でくくってください

melmel123
質問者

お礼

言われたとおりの手順でできました。 クロス集計クエリ初めて使いましたが大変便利ですね!! もっと、勉強します。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.1

SQLではできません アクセスにはクロス集計クエリ(TRANSFORM)があります このSQLを使用するには要素があと一つ足りません 目的にはそぐわないですが、サンプルとしてクロス集計クエリのSQL: TRANSFORM First(商品テーブル.商品番号) AS 商品番号の先頭 SELECT 商品テーブル.伝票番号 FROM 商品テーブル GROUP BY 商品テーブル.伝票番号 PIVOT 商品テーブル.商品番号; VBAを使用してワークテーブルにコンバート出力するのが確実かと思われます

melmel123
質問者

お礼

クロス集計クエリで、出来ました。 初めて使いましたが大変便利ですね!! もっと、勉強します。 ありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう