這是到目前爲止我的代碼:
SELECT WeekNumber, SUM(Hours)
FROM Information
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC
然而,我想選擇的最後一個星期的信息,或者上個月。有沒有辦法只選擇第一行或第一x行,在這些行包含該月的時間?
這是到目前爲止我的代碼:
SELECT WeekNumber, SUM(Hours)
FROM Information
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC
然而,我想選擇的最後一個星期的信息,或者上個月。有沒有辦法只選擇第一行或第一x行,在這些行包含該月的時間?
假設你正在使用SQL Server,使用TOP
條款(limit
僅用於MySQL的);例如: -
SELECT TOP 10 WeekNumber, SUM(Hours)
FROM Information
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC
有沒有辦法使TOP子句動態的,它會根據它是什麼星期換一次? – brachaalizah
@brachaalizah這是沒有意義的,weeknumber爲每個行可能不同,頂的X條款適用於整個查詢 –
使用Microsoft SQL Server 2008(在你的代碼中指定的),你需要使用TOP
關鍵字。
SELECT TOP 10 WeekNumber, SUM(Hours)
FROM Information
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC
的LIMIT
關鍵字是MySQL,不用於SQL Server
您還可以使用SET ROWCOUNT 10
在您的查詢,該做同樣的事情的一開始,但將持續在連接所有後續查詢。
http://stackoverflow.com/questions/7680672/sql-query-to-select-first-top-n-records/7680733#7680733是在多個關係數據庫中的這個問題的答案 –