0

そのレコードの最新のステータスに基づいて、注文テーブルから一連のレコードを選択しようとしています。ステータスは、orderStatus という別のテーブルに保持されます。私のテーブルはもっと複雑ですが、これは基本的な例です

テーブル - 注文:

orderID

テーブル - 注文状況:

 orderStatusID
 orderID
 orderStatusCode
 dateTime

注文には多くのステータス レコードを含めることができます。クエリ対象の最新の statusCode を持つ注文を取得したいだけです。問題は、重複がたくさんあることです。これが基本的な例です。

select orders.orderID
from   orders inner join orderStatus on orders.orderID = orderStatus.orderID
where  orderStatusCode = 'PENDING'

dateTime で並べ替えられた orderStatus テーブルから上位 1 を選択する内部クエリを実行しようとしました。しかし、私はまだ同じ重複を見ていました。誰かがこれを行う方法について正しい方向に向けることができますか?

編集:SQLサーバー2008

4

5 に答える 5

0

日時のサブクエリを試してみませんか?

 select orders.orderID
 from   orders inner join orderStatus on orders.orderID = orderStatus.orderID
 where  orderStatusCode = 'PENDING' AND (dateTime)=((SELECT MAX(dateTime) From orders 
 as orders2 Where orders= orders2))
于 2013-08-29T16:02:19.737 に答える