• ベストアンサー

(ACCESS)並び替えをしないでグループ化した

こんにちは、いつもお世話になっています。 アクセス2003の利用方法について、教えてください。 アクセスでクエリを実行→グループ化→実行すると、もとの配列が自動的に昇順に並び替えられてしまいます。 もとの配列を維持しつつ、グループ化したい項目だけグループ化する。。なんてことはできますか?質問がわかりにくいかもしれません。わかりにくいところは補足いたしますので、ご指摘ください。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

テーブルに何か連番がないと並びは 確定することができません。 そこで、たとえば、テーブル名をT売上とします。 テーブルにオートナンバー型のフィールドを 一つ追加します。一応、IDという名前にします。 (主キーである必要はありません) SELECT First(T売上.ID) AS IDの先頭, T売上.品番, Sum(T売上.数量) AS 数量の合計 FROM T売上 GROUP BY T売上.品番 ORDER BY First(T売上.ID); このようにすれば、並びは確定できます。

mame1218
質問者

お礼

ありがとうございました。 できました!

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問への念押し。 (1)12050というのはどういうところから選ばれたデータですか (A)普通はデータの他のフィールドの値で選ばれたりする(例えば販売店や販売日フィールドがあって、靜岡支店の販売商品、4月1日に売れた商品など) しかし(B)最近欠陥が見つかった商品などというように、このデータ以外の事情で注目され選ばれる場合もある。 (C)本件は2レコード以上あるもの(レコードの前後の数が複数)は合算するように見えるがそうか。(例だけでなく質問に文章で明記のこと。) (2)もとのデータの並び順を決めているのは、データの値か それとも発生順(例えば売上日順に入力された)などで、余り意味はないのか (2)12050など複数出てくるレコードだけ選択して合計し、他の品番のものをそのままとしたいというkとか。 (3)複数のレコードを合算としても、また飛び離れた(行)位置に12050などは出てくるのか。その場合どうするのか。 ーー ADOなどのレコード処理型のプログラムを使えば出来ると思うがそれではダメか クエリ(SQL)で実行したいのか。 元の順番を保存しつつ、複数レコードあるものは、GROUP BYでなくて合算し、何かクレリで出したいということか。 レコードの前後重複関係を問題にして、クエリで扱うのは難しそうだが。

mame1218
質問者

お礼

ありがとうございました。 助かりました。

mame1218
質問者

補足

データの並びには規則性があります。 5桁 00000 → 99999 まで昇順に上から並んでいるのですが、 00001→00002→00003・・・というように」順番には並んでおらず、 また、00001→00003→00005というように規則性をもって並んでいるわけでもありません。 とびとびで並んでいるものの、昇順という並び方です。 したがって、ダブりデータの場合、必ず、00012→00013→000013→000014 の00013というように、データが連なります。 また、これらデータは、製品番号です。 今回の件は簡単そうな話だと質問前は考えていましたが、思いの他難しそうであり、 クエリで実行ができなければ、あきらめようと思っています。(当方の力量がついてゆけないため)

関連するQ&A