- ベストアンサー
並び替え
構造体を必要な時に動的に割り当てた後、伝票月の一致する店舗番号、店舗番号の一致する区分番号1、区分番号の一致する区分番号2を並び替えたいのですが、うまくいきません。SQL文でのORDER BY 文で並び替えると、店舗番号が飛び飛びになってしまいます。クイックソートやバブルソートで、伝票日付を並び替えた中で店舗番号を並び替える、など何か方法はありませんか? '伝票データを格納する構造体 */ Type Aa 伝票日付 as integer 店舗番号 as integer 区分番号1 as integer 区分番号2 as integer End Type dim Denpyo() as Aa
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再びmaruru01です。 どうやら逆のようでした。 ORDER BY 伝票日付, 店舗番号, 区分番号1, 区分番号2 これならいいと思いますが。 では。
その他の回答 (2)
GROUP BY句を使ったらいいのでは? GROUP BY句とは、ある表の行を、条件ごとにまとめて扱うものです。たとえば人事関係の表なら、部ごとの給与の平均を取るとか。GROUPBY句はSELECTコマンドのオプションとして使います。 はずしてたらごめんなさいm(__)m
お礼
GROUP BY句は使っています。何度も色々な方法を試しては見たのですが、やはり、一回のSQL文では無理だと思い、月別でデータを取得した後、店舗番号と区分番号1、区分番号2でソートさせることにしました。回答ありがとうございます。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 ORDER BYに複数を指定すればいいんじゃないでしょうか。 この時、前から順に優先してソートするから、 ORDER BY 区分番号2, 区分番号1, 店舗番号, 伝票日付 とすればいいと思いますが。 では。
補足
早い回答をありがごうとざいました。 すみません。説明が足りなかったと思うので、補足させていただきます。 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 句で色々と試しては見たのですが、必ず何処かがバラバラになってしまいます。
お礼
どうもありがとうございます。やってみましたが、やはりORDER BY句からでは無理なようです。伝票番号を優先すると、後の区分番号1と、区分番号2がバラバラになってしまいました。でも、ORDER BY句の中で列指定を並び替えるというのはとても参考になりました。別のプログラムで使わせていただきました。ありがとうございます。