• ベストアンサー

並び替え

構造体を必要な時に動的に割り当てた後、伝票月の一致する店舗番号、店舗番号の一致する区分番号1、区分番号の一致する区分番号2を並び替えたいのですが、うまくいきません。SQL文でのORDER BY 文で並び替えると、店舗番号が飛び飛びになってしまいます。クイックソートやバブルソートで、伝票日付を並び替えた中で店舗番号を並び替える、など何か方法はありませんか? '伝票データを格納する構造体 */ Type Aa 伝票日付 as integer 店舗番号 as integer 区分番号1 as integer 区分番号2 as integer End Type dim Denpyo() as Aa

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

再びmaruru01です。 どうやら逆のようでした。 ORDER BY 伝票日付, 店舗番号, 区分番号1, 区分番号2 これならいいと思いますが。 では。

aris
質問者

お礼

どうもありがとうございます。やってみましたが、やはりORDER BY句からでは無理なようです。伝票番号を優先すると、後の区分番号1と、区分番号2がバラバラになってしまいました。でも、ORDER BY句の中で列指定を並び替えるというのはとても参考になりました。別のプログラムで使わせていただきました。ありがとうございます。

その他の回答 (2)

noname#32133
noname#32133
回答No.3

GROUP BY句を使ったらいいのでは? GROUP BY句とは、ある表の行を、条件ごとにまとめて扱うものです。たとえば人事関係の表なら、部ごとの給与の平均を取るとか。GROUPBY句はSELECTコマンドのオプションとして使います。 はずしてたらごめんなさいm(__)m

aris
質問者

お礼

GROUP BY句は使っています。何度も色々な方法を試しては見たのですが、やはり、一回のSQL文では無理だと思い、月別でデータを取得した後、店舗番号と区分番号1、区分番号2でソートさせることにしました。回答ありがとうございます。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 ORDER BYに複数を指定すればいいんじゃないでしょうか。 この時、前から順に優先してソートするから、 ORDER BY 区分番号2, 区分番号1, 店舗番号, 伝票日付 とすればいいと思いますが。 では。

aris
質問者

補足

早い回答をありがごうとざいました。 すみません。説明が足りなかったと思うので、補足させていただきます。 ORDER BY句を使用し区分番号2,区分番号1,店舗番号,伝票日付とすると、区分2と区分1の順でソートされますが、伝票日付と店舗番号がバラバラになってしまうんです。 伝票日付 店舗番号 区分1 区分2 2002-02-01   2   0   0 2002-02-07   2   0  0 2002-02-04   4  0  0 2002-02-01   8  1  0 2002-02-28 7 2 1 と上のように伝票番号と店舗番号がバラバラになってしまいます。 出したい結果としては、伝票日付が2002-02-01のデータをまとめ、その中で店舗番号が2のデータをまとめ、その中で区分1が0のデータをまとめ、さらに区分2のデータをまとめたいのです。 ORDER BY 句で色々と試しては見たのですが、必ず何処かがバラバラになってしまいます。

関連するQ&A