【发布时间】:2015-06-22 22:30:39
【问题描述】:
我需要根据一些奇怪的要求对表中的记录进行分组。我已经非常接近我需要的东西,但我无法获得最后一点。
ID Task Time
1 Task1 6:00 AM
1 Task1 6:05 AM
1 Task1 6:10 AM
1 Task2 6:15 AM
1 Task2 6:20 AM
1 Task1 6:30 AM
2 Task1 9:00 AM
2 Task1 9:05 AM
2 Task2 9:10 AM
我需要分组的任务,但如果它们来自不同的 ID,也不需要它们不是彼此“相邻”的,我只想返回一组任务的最新时间。
所以,上面的结果应该是这样的:
ID Task Time
1 Task1 6:10 AM
1 Task2 6:20 AM
1 Task1 6:30 AM
2 Task1 9:05 AM
2 Task2 9:10 AM
我已经弄清楚了按任务/ID 分组并获取最新的时间部分,但不是关于仅在它们彼此“相邻”(即不被不同的任务分隔)时才对它们进行分组的部分。
这是我现在拥有的:
SELECT ID, Task, MAX(Time) AS Latest FROM
(SELECT ID, Task, Time FROM TaskTable)
GROUP BY ID, Task
这会产生以下内容:
ID Task Time
1 Task2 6:20 AM
1 Task1 6:30 AM
2 Task1 9:05 AM
2 Task2 9:10 AM
如您所见,来自 ID 1 的所有 Task1 都分组在最新时间下,而不是向我显示它运行的两个单独时间(在 Task2 之前和之后)。
哦,是的,这个 SQL 必须在 Access 中工作......所以就是这样。
【问题讨论】: