-PR-
解決済み

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

  • すぐに回答を!
  • 質問No.2828848
  • 閲覧数27883
  • ありがとう数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 " ⇒成功
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル12

ベストアンサー率 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

その他の回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 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


  • 回答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
このQ&Aで解決しましたか?
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ