Tsql 仅选择日期的最后一个值?

Tsql 仅选择日期的最后一个值?,tsql,sql-server-2012,Tsql,Sql Server 2012,我有一个SELECT,它返回类似于这个结果的结果(我简化了它,因为最初的SELECT相当复杂): | UserFK | aDate | aValue| --------------------------------------------- | 1000 | 03.12.2012 10:00 | 123 | |1000 | 03.12.2012 11:00 | 456 |您可以将CTE与以下内容一起使用: WITH CTE AS ( SELECT UserFK,

我有一个SELECT,它返回类似于这个结果的结果(我简化了它,因为最初的SELECT相当复杂):

| UserFK | aDate | aValue|
---------------------------------------------
| 1000      | 03.12.2012 10:00  | 123       |

|1000 | 03.12.2012 11:00 | 456 |您可以将
CTE
与以下内容一起使用:

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