- ベストアンサー
SQL文「DISTINCT」の「ORDER BY」について
SQL文「DISTINCT」の「ORDER BY」について教えて下さい。 A列をDISTINCTで重複行の排除をしています。 その後、B列でORDER BYをかけたいのですが、エラーが 出てしまいます。A列でのORDER BYは成功します。 何か良い方法があれば教えて下さい。 よろしくお願いします。 SQL="SELECT DISTINCT A列 from table " &_ "WHERE (table.C列='100') " &_ "ORDER BY (table.B列) ASC " ⇒エラー "ORDER BY (table.A列) ASC " ⇒成功
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
GROUP BY を使えばいいと思います。 SELECT A, Min(B) AS minB, C FROM table1 WHERE C=100 GROUP BY A, C ORDER BY Min(B); Min とか Max とかで、B列のデータの扱いを決める必要があります。
その他の回答 (2)
ID__A_____B_____C 1___aaa___aaa__100 2___aaa___ccc__100 3___bbb___bbb__100 SELECT DISTINCT A from table1 WHERE C='100' ORDER BY B ASC; SELECT DISTINCT が指定されている場合、選択リストに ORDER BY 項目が必要です。 Err number = -2147217900 ですから、 SELECT DISTINCT A, B from table1 WHERE C='100' ORDER BY B ASC; |A__|B__| ---|-------- |aaa|aaa| |bbb|bbb| |aaa|ccc| という結果を得れます。
補足
アドバイスありがとうございます。 エラーは出ずに、ソートはうまくいったのですが、DISTINCTがかかりません。 どうしたらよろしいでしょうか?? ID__A_____B_____C 1___aaa___aaa__100 2___aaa___ccc__100 3___bbb___bbb__100 以下のように抽出したい 1___aaa___aaa__100 3___bbb___bbb__100
- iwaiwaiwa
- ベストアンサー率18% (25/137)
エラーとなる原因は、次のような場合ではないでしょうか? 間違っていたらごめんなさい。 A列 B列 C列 aaa aaa 100 aaa ccc 100 bbb bbb 100
補足
下記のようなデータで、 A列 B列 C列 aaa aaa 100 aaa bbb 100 aaa ccc 100 bbb ddd 100 以下のように出したいです。 A列 B列 C列 aaa aaa 100 or aaa bbb 100 or aaa ccc 100・・・3つのうち何れかが抽出される bbb ddd 100
お礼
うまくいきました!! ありがとうございました!!