解決済み

SQL文「DISTINCT」の「ORDER BY」について

  • すぐに回答を!
  • 質問No.2828848
  • 閲覧数28758
  • ありがとう数12
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 71% (45/63)

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

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

  • 回答No.3

ベストアンサー率 71% (311/435)

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

お礼率 71% (45/63)

うまくいきました!!
ありがとうございました!!
投稿日時 - 2007-03-13 14:38:48
Be MORE 7・12 OK-チップでイイコトはじまる

その他の回答 (全2件)

  • 回答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

お礼率 71% (45/63)

アドバイスありがとうございます。
エラーは出ずに、ソートはうまくいったのですが、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
投稿日時 - 2007-03-13 13:11:09
  • 回答No.1

ベストアンサー率 18% (25/137)

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

A列 B列 C列
aaa aaa 100
aaa ccc 100
bbb bbb 100
補足コメント
user10

お礼率 71% (45/63)

下記のようなデータで、
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
投稿日時 - 2007-03-13 13:18:06
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ