2016-12-06 58 views
-1

我有一個表所示:採取的最後一個記錄

Create table Accounts 
(
    account_key char(2) 
,account_name varchar(1024) 
,type varchar(50) 
,date_entered date 
); 

我需要選擇每個account_name了最新記錄。如何做到這一點?最好藉助Row_Number

+0

你有沒有嘗試使用'ROW_NUMBER'什麼? –

回答

3
WITH CTE AS 
(
    SELECT account_key, account_name, type, date_entered, 
     rn = row_number() over (partition by account_name order by date_entered desc) 
    FROM dbo.Accounts 
) 
SELECT account_key, account_name, type, date_entered 
FROM CTE 
WHERE RN = 1 
0

你可以不喜歡它:

SELECT account_key, account_name, type, date_entered 
from (
     SELECT account_key,account_name,type,date_entered, 
       ROW_NUMBER() OVER (PARTITION BY date_entered DESC) AS RN 
     FROM Accounts 
        ) X 
WHERE X.RN=1