質問: 最新の日付を持つレコードと結合したい。 sqlserver2005環境です。 aとb、2つのテーブルを結合しようと考えています。 bはキーを持たないテーブルです。 仮にですが テーブルa id --- 1 2 3 テーブルb id 時間 --- 1 12:00 1 13:00 2 10:00 3 11:00 3 12:00 3 15:00 のようになっていた場合、bテーブルの一番新しい日付のもののみと 結合したいと考えています。 なので、上の例だと、結合後 id 時間 --- 1 13:00 2 10:00 3 15:00 となるようにしたいのです。 実際のテーブルにはidや時間の他にも様々な値があり、id以外の値が 違うレコードであっても、idが同じであれば、最新のレコードのみ 結合対象にするような仕様です。 (なのでgroup byを使うと実現できない?) イメージとしては、結合する際に、on句でより新しいほうを、という条件を 指定できたらなぁと思っているんですが、うまく作れず困っています。 ご教授いただけないでしょうか? よろしくお願いします。
回答: 別解です。相関サブクエリを使って最新のものだけ抽出する方法です。 select distinct a.id,b.時間 from テーブルa a inner join テーブルb b on b.id=a.id where b.時間 in (select max(時間) from テーブルb where id=b.id)