2016-07-19 43 views
1

我有以下查詢來選擇前10名。但結果顯示11行,當我將選擇更改爲前20,它顯示21?選擇前10名,但11個結果

是否有問題導致此查詢?

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; 
+0

嘗試在查詢的末尾添加LIMIT 10。 –

回答

6

當MS Access處理TOP時,它將所有連接放入最後一個值。在SQL Server中,這將相當於TOP WITH TIES。因此,如果第11行與第10行具有相同的計數,則將其包括在內 - 如果計數相同,則第12行依此類推。

要解決這個問題,您需要包含某種打破平局。在GROUP BY,這將是日期。這是一個簡單的方法:

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