- ベストアンサー
(ACCESS)並び替えをしないでグループ化した
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブルに何か連番がないと並びは 確定することができません。 そこで、たとえば、テーブル名をT売上とします。 テーブルにオートナンバー型のフィールドを 一つ追加します。一応、IDという名前にします。 (主キーである必要はありません) SELECT First(T売上.ID) AS IDの先頭, T売上.品番, Sum(T売上.数量) AS 数量の合計 FROM T売上 GROUP BY T売上.品番 ORDER BY First(T売上.ID); このようにすれば、並びは確定できます。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
質問への念押し。 (1)12050というのはどういうところから選ばれたデータですか (A)普通はデータの他のフィールドの値で選ばれたりする(例えば販売店や販売日フィールドがあって、靜岡支店の販売商品、4月1日に売れた商品など) しかし(B)最近欠陥が見つかった商品などというように、このデータ以外の事情で注目され選ばれる場合もある。 (C)本件は2レコード以上あるもの(レコードの前後の数が複数)は合算するように見えるがそうか。(例だけでなく質問に文章で明記のこと。) (2)もとのデータの並び順を決めているのは、データの値か それとも発生順(例えば売上日順に入力された)などで、余り意味はないのか (2)12050など複数出てくるレコードだけ選択して合計し、他の品番のものをそのままとしたいというkとか。 (3)複数のレコードを合算としても、また飛び離れた(行)位置に12050などは出てくるのか。その場合どうするのか。 ーー ADOなどのレコード処理型のプログラムを使えば出来ると思うがそれではダメか クエリ(SQL)で実行したいのか。 元の順番を保存しつつ、複数レコードあるものは、GROUP BYでなくて合算し、何かクレリで出したいということか。 レコードの前後重複関係を問題にして、クエリで扱うのは難しそうだが。
お礼
ありがとうございました。 助かりました。
補足
データの並びには規則性があります。 5桁 00000 → 99999 まで昇順に上から並んでいるのですが、 00001→00002→00003・・・というように」順番には並んでおらず、 また、00001→00003→00005というように規則性をもって並んでいるわけでもありません。 とびとびで並んでいるものの、昇順という並び方です。 したがって、ダブりデータの場合、必ず、00012→00013→000013→000014 の00013というように、データが連なります。 また、これらデータは、製品番号です。 今回の件は簡単そうな話だと質問前は考えていましたが、思いの他難しそうであり、 クエリで実行ができなければ、あきらめようと思っています。(当方の力量がついてゆけないため)
お礼
ありがとうございました。 できました!