• ベストアンサー

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 " ⇒成功

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.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列のデータの扱いを決める必要があります。

user10
質問者

お礼

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

その他の回答 (2)

noname#140971
noname#140971
回答No.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| という結果を得れます。

user10
質問者

補足

アドバイスありがとうございます。 エラーは出ずに、ソートはうまくいったのですが、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)
回答No.1

エラーとなる原因は、次のような場合ではないでしょうか? 間違っていたらごめんなさい。 A列 B列 C列 aaa aaa 100 aaa ccc 100 bbb bbb 100

user10
質問者

補足

下記のようなデータで、 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

関連するQ&A

専門家に質問してみよう