• ベストアンサー

SQL文で教えてください

初めてです。お願いします。 次のようなテーブルがあります。 ID kosuu ------------ 1 3 2 5 3 1 kosuuの一番大きい値とそれに紐づくIDを取得したいのですが SELECT ID, Max(kosuu) FROM tblX と書くと、IDが不正だとおこられてしまいます。 ID kosuu ------------ 2 5 を抽出するにはどうしたらよいでしょうか? Access2000です。宜しくお願いします。

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

  • ベストアンサー
  • maro200
  • ベストアンサー率45% (15/33)
回答No.2

こんにちは。 先ほどのサブクエリーでは、結果が一件の時のみ有効ですので グループ化して複数のレコードを条件としたい場合は、IN句を使います。 "="を"in"に変えて、グループ化をしてみてください。 こんな感じです。 select ID,kosuu from tblX where kosuu in (select max(kosuu) from tblX group by name)

chachako
質問者

お礼

できました!! ご親切にどうもありがとうございました! 大変勉強になりました。 これからもどうぞ宜しくお願いします。

その他の回答 (1)

  • maro200
  • ベストアンサー率45% (15/33)
回答No.1

select ID,kosuu from tblX where kosuu = (select max(kosuu) from tblX) こんな感じで出来ると思います。

chachako
質問者

補足

maroさん、ありがとうございます!!できました! で、実はテーブルにはもうひとつカラムがありまして、 ID kosuu Name ------------ 1 3 aa 2 5 aa 3 1 bb となっています。 実際は、このNameでグループ化した中でのkosuuの最大値をとりたかったのです。 最大値の取り方だけわかれば後は自分で出来るかなあ? と思い、色々やってみたのですが、できませんでした(-_-) もしよろしければ、そちらのやり方も教えていただけないでしょうか? あつかましくてすみません。 宜しくお願いします。 欲しいデータは ID kosuu Name ------------ 2 5 aa 3 1 bb です。