2014-01-13 60 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