选择前10名,但选择11名结果

时间:2016-07-19 10:55:26

标签: sql ms-access access-vba

我有以下查询来选择前10名。但结果显示11行,当我将选择更改为前20名时,它显示21?

导致此问题的查询是否有问题?

SELECT TOP 10 Format([DutyDate],"ddd"", ""dd-mmm-yy") AS [Shift Date], Count(Shifts.ID) AS Shifts
FROM Shifts
GROUP BY Format([DutyDate],"ddd"", ""dd-mmm-yy")
ORDER BY Count(Shifts.ID) DESC;

1 个答案:

答案 0 :(得分:6)

当MS Access处理TOP时,它会将所有联系放入最后一个值。在SQL Server中,这相当于TOP WITH TIES。因此,如果第11行与第10行具有相同的计数,那么它将被包含 - 和第12行,依此类推,如果计数相同。

要解决此问题,您需要包含某种打破平局。在GROUP BY中,这将是日期。这是一个简单的方法:

ORDER BY Count(Shifts.ID) DESC, MIN(DutyDate)