- ベストアンサー
アクセスの集計について
アクセスのクエリで、伝票番号でグループ化し、その横に、商品番号を並べたいです。 ★元テーブル★(名前:商品テーブル) 伝票番号 商品番号 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つ表示されてしまって困っています。 わかりにくい質問で申し訳ありませんが、教えてください(^^)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
並べる順番は商品番号の文字コード順でいいでしょうか だったらクエリで下のような式フィールドを作り 列名:"商品番号" & DCount("*","商品テーブル","伝票番号=" & 伝票番号 & " and 商品番号<='" & 商品番号 & "'") これをクロス集計クエリに変えて 伝票番号:行見出し 列名:列見出し 商品番号:値:先頭 伝票番号は数値型と仮定しています。テキストのときは商品番号のように「'」でくくってください
その他の回答 (1)
- AlexSuns
- ベストアンサー率67% (78/115)
SQLではできません アクセスにはクロス集計クエリ(TRANSFORM)があります このSQLを使用するには要素があと一つ足りません 目的にはそぐわないですが、サンプルとしてクロス集計クエリのSQL: TRANSFORM First(商品テーブル.商品番号) AS 商品番号の先頭 SELECT 商品テーブル.伝票番号 FROM 商品テーブル GROUP BY 商品テーブル.伝票番号 PIVOT 商品テーブル.商品番号; VBAを使用してワークテーブルにコンバート出力するのが確実かと思われます
お礼
クロス集計クエリで、出来ました。 初めて使いましたが大変便利ですね!! もっと、勉強します。 ありがとうございました。
お礼
言われたとおりの手順でできました。 クロス集計クエリ初めて使いましたが大変便利ですね!! もっと、勉強します。 ありがとうございました。