2009-05-27 6 views
0

私はしたいことが本当に簡単で、間違った解決策を見ていると思います。私は単に関連するテーブルの日付スタンプに基づいてソートされたテーブルを返すだけです。SQL2005 +内部結合のテーブルのdatetimeに基づく別個の結果を返す

すなわち:私の結果は、私が参加し、内側をやって試してみました

201 Other Why 
200 MyStuff OK 
202 Flat So 

する必要がありますので、私は最初のテーブルを返したい

Table 1: 
200 MyStuff OK 
201 Other  Why 
202 Flat  So 

Table 2: 
1 200 5/12/2009 MyValue1 
2 200 5/11/2009 MyValue2 
3 201 7/10/2009 MyValue3 
4 201 7/08/2009 MyValue4 

は、第二のテーブル内の日付に基づいてソートしかし、私は別のものを選択すると、ソートしている2番目のテーブルの日付を含める必要があります。したがって、リターンテーブルに重複したpkがあります。

私のルーキーミスを理解するのを手伝ってください。

答えて

0

Table1のすべての行に対してTable2に複数の行を入れることができるので、並べ替えまでの日付の処理方法を決定する必要があります。

select table1.*, t2.max_ds 
from table1 
inner join (select id, max(datestamp) as max_ds from table2 group by id) t2 
on t2.id = table1.id 
order by t2.max_ds 

あなたは明らかにいくつかのヌル取り扱いやその他もろもろを追加する必要がありますが、それはあなたが始める必要があります。

のは、あなたが最大の日付スタンプでソートしたいとしましょう、あなたのような何かをしたいです。

+0

私は必要なものの方向に考えさせてくれました。ありがとう。私は実際にサブクエリを実行して、それをソートしました。 – schmoopy

関連する問題