- ベストアンサー
SQL記述の質問
SQLを書くにあたって悩んでいます。 簡単なようで何となく頭がこんがらがってしまっているので、 教えていただけないでしょうか? テーブル (識別番号+年月日でPK) 識別番号 年月日 検索項目 ソートキー ----------------------------------- 001 11/31 001 003 001 10/31 001 003 001 10/01 001 003 002 11/31 001 002 002 10/31 001 002 002 10/01 001 002 003 11/31 001 001 003 10/31 001 001 003 10/01 001 001 上のようなテーブルを以下の条件で検索したいです。 1)検索項目='001' 2)同一識別番号で年月日が最大のもの 3)ソートキーの昇順 ★結果のイメージ 識別番号 年月日 検索項目 ソートキー ----------------------------------- 003 11/31 001 001 ←取得対象 002 11/31 001 002 ←取得対象 001 11/31 001 003 ←取得対象 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
お礼
早速の回答ありがとうございます。 select max(xx),a,b,c・・・ にしてしまうと、a,b,cの項目が、max(xx)のレコードとは 限らなくなってしまうような気がするのですが。 かといってテーブルの全ての項目をGroup byするのも 難しいですし。。。 他のアイディアも募集しています。
補足
自己レスです。 SELECT * FROM TABLE WHERE 検索項目='001' AND 年月日=(SELECT MAX(年月日) FROM TABLE GROUP BY 識別番号) ORDER BY ソートキー でいけそうな気がするのですが、ご意見お願いいたします。(文法エラー??) 初心者ですいません。。。