这是到目前为止我的代码:
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是在多个关系数据库中的这个问题的答案 –