2011-12-25 34 views
0

マスター/詳細テーブルの詳細テーブルの最終レコードを取得する方法はありますか?マスター/詳細テーブルの詳細テーブルの最後のレコードを取得する方法

WITH NthRowCTE AS 
( 
    SELECT 
     ROW_NUMBER() OVER (ORDER BY od.OrderID,od.ProductID) AS RNum 
     ,od.Quantity,od.OrderID, od.ProductID 
    FROM [Order Details] od 
) 
SELECT TOP 1 * FROM NthRowCTE GROUP BY RNum,Quantity,OrderID,ProductID ORDER BY RNum DESC 
:私は OrderID

おかげ


編集1)

ごとに注文詳細テーブルの最後のレコードを取得したいNorthwindデータベースで、たとえば

私はこのしてみてください

私は分かりませんこれをすべての注文IDに接続する方法

+0

私が最初ROW_NUMBERを使用しようが、私はanswer.please私はあなたの試みを投稿 – Arian

+0

助けを得ることができませんでした..... –

+0

私の編集を参照してください1 – Arian

答えて

1

窓の機能の一部をpartition byにしたいと思っています。これにより、新しいOrderIDが検出されたときにカウンタがリセットされ、where rnum = 1が機能します。

オーダーごとに最後のオーダー明細レコードを使用する場合は、ORDER BY od.OrderDetailID DESCを使用してください。 (これは、使用するIDがありますを前提としています。それは、日付または行番号することができる)

WITH NthRowCTE AS 
( 
    SELECT 
     ROW_NUMBER() OVER (Partition By od.OrderID ORDER BY od.OrderDetailID DESC) AS RNum 
     ,od.Quantity,od.OrderID, od.ProductID 
    FROM [Order Details] od 
) 
SELECT * FROM NthRowCTE 
WHERE RNum = 1 
+0

ありがとうworks.if私は 'OrderDetailID'を持っていませんどのように並べ替え、最後のレコードを得ることができますか? – Arian

+0

最後のレコードとして識別されるものを降順でソートする –

関連する問題