2011-12-25 2 views
0

Как я могу получить последнюю таблицу данных в таблицах мастер-данных?Как получить последнюю таблицу записей в таблицах мастер-данных

, например, в базе данных Northwind Я хочу, чтобы получить последнюю запись сведений о заказе стола за OrderID

благодаря


Edit 1)

Я стараюсь это:

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

+0

Я первый попробовать использовать row_number, но я не мог answer.please помочь мне – Arian

+0

опубликовать попытку ..... –

+0

см. Мое редактирование 1 – Arian

ответ

1

Вы хотите использовать часть функции окна partition by. Это приведет к сбросу счетчика при обнаружении нового идентификатора OrderID и позволяет работать where rnum = 1.

Поскольку для получения последней записи о подробностях заказа в заказе вы используете ORDER BY od.OrderDetailID DESC для обеспечения этого. (Это предполагает, что есть идентификатор использовать. Это может быть дата или номер строки)

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

просто сортировать по убыванию, независимо от того, что идентифицирует его как последнюю запись –

Смежные вопросы