2014-01-13 109 views
-3

我需要通過DATETIME選擇每個memberid的最新記錄。根據DATETIME選擇最新記錄

說我的表是這樣的:

MemberID CreatedDate 
188   2013-01-31 08:10:15.990 
188   2013-01-31 08:10:15.970 
188   2013-01-24 19:36:01.840 
244   2013-01-24 19:36:01.840 
244   2013-01-31 08:10:15.970 
244   2013-01-31 08:10:15.980 

OUT:

188 2013年1月31日08:10:15.990
244 2013年1月31日08:10:15.980

SQL QUERY根據date-Time-milliseconds選擇最新的。

預先感謝您的幫助。

+1

你有沒有試過寫任何東西來得到你想要的輸出? – Ellesedil

回答

2

最簡單的使用排名功能像ROW_NUMBER

WITH CTE AS 
(
    SELECT MemberID, CreatedDate, 
      RN = ROW_NUMBER() OVER (PARTITION BY MemberID 
            ORDER BY CreatedDate DESC) 
    FROM dbo.TableName 
) 
SELECT MemberID, CreatedDate FROM CTE WHERE RN = 1 

這只是返回每一個MemberID記錄(具有最新的CreatedDate)。如果您有多個最新記錄,則會採取任意操作。如果你想在這種情況下采取全部措施,你必須用DENSE_RANK代替ROW_NUMBER

2

我認爲這是你在找什麼,你需要組MEMBERID並找到最大CreatedDate

Select memberId, max(CreatedDate) from members 
Group By memberId 
1

這是你所期待的。

select memberid,max(createddate) createddate from Table 
    group by memberid