我如何获得最新记录?
我使用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
答案 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
我想这应该是因为你正在寻找按名称分组。