按日期时间和名称获取最新数据

时间:2015-05-04 02:11:30

标签: sql

我如何获得最新记录?
我使用MAX(DateTime)GROUP BY,但没有获得我需要的数据。

以下为示例数据

DateTime                | ID     | Name
2014-09-25 07:36:45.193 | 987302 | Allan 
2014-09-25 07:36:45.310 | 987303 | Allan 
2014-09-25 07:37:31.180 | 987304 | Allan 
2014-09-25 07:38:45.193 | 987305 | Jenny 
2014-09-25 07:39:45.310 | 987306 | Jenny 
2014-09-25 07:40:31.180 | 987307 | Jenny 

结果应显示

2014-09-25 07:37:31.180 | 987304 | Allan
2014-09-25 07:40:31.180 | 987307 | Jenny

2 个答案:

答案 0 :(得分:1)

看起来您没有获得预期结果的原因是因为[Id]是唯一的,并且您将其包含在GROUP BY子句中。请试一试:

SELECT [a].[DateTime], [t].[Id], [a].[Name]
FROM (
    SELECT MAX([DateTime]) AS [DateTime], [Name]
    FROM [table]
    GROUP BY [Name]
) AS [a]
JOIN [table] AS [t]
ON [a].[DateTime] = [t].[DateTime]
AND [a].[Name] = [t].[Name]

如下所述,Eric如果有重复的DateTime / Name,您可以探索其他选项。

答案 1 :(得分:-1)

SELECT Max(DateTime)as DateTime,ID,Name FROM tblTimesheetEntry GROUP BY Name

我想这应该是因为你正在寻找按名称分组。