0
私は以下の2つのテーブルを持っています。SQL Server 2008 - 複数のテーブルの最大値に対する結合
a.id a.UpdateDate a.O a.1 b.id b.UpdateDate b.0 b.1
1 1/1/15 a b 1 2/1/15 a b
1 1/1/15 c d 1 3/1/15 a c
1 5/1/15 e f 1 3/1/15 d e
Idごとに1行表示したいと思います。テーブルaの最新の更新日テーブルbの最新の更新日は、Idの2つのテーブルを結合します。そうすれば、IDごとに1つの行を持つ両方のテーブルから最新のアップデートを取得できます。
a.id a.UpdateDate b.id b.UpdateDate a.o a.1 b.0 b.1
1 5/1/15 1 3/1/15 e f d e
両方のテーブルの最大値が必要で、次のステップで苦労します。 EDIT - 両方のテーブルの最新のUpdateDateとid(1行Per id)が必要です。次に、テーブルaとbをidに結合します。
Select a.id, a.UpdateDate, b.id, b.UpdateDate
From a
inner join (select id, max(UpdateDate) AS dt From a group by id)
maxdt On A.id = maxdt.id and a.UpdateDate = maxdt.UpdateDate
上記では、テーブルaから最大UpdateDateを抽出しています。では、テーブルbからmax UpdateDateをどのように抽出するのですか?これが明確であることを祈っています...
クワースノイ - これはうまくいくとは思いません。テーブルAまたはBの列を追加する場合は、これらの列を内側の選択とグループに追加する必要があります。私はこれを避けようとしているし、上記の最初の部分を私が自己結合した場所に取り込んだ。私はテーブルBでもこれをやりたいと思っていました。 –
@mrjohn:なぜ、他の列を選択してグループ化する必要がありますか?結果セットには、IDと最大日付のみが表示されます。 – Quassnoi
追加する必要がある列があります。私は約40列あります。 –