2011-10-12 102 views
-1

可能重复:
SQL Query to Select First/Top N recordsSQL选择第x行

这是到目前为止我的代码:

SELECT WeekNumber, SUM(Hours) 
FROM Information 
WHERE YEAR = 2011 
GROUP BY WeekNumber 
ORDER BY WeekNumber DESC 

然而,我想选择的最后一个星期的信息,或者上个月。有没有办法只选择第一行或第一x行,在这些行包含该月的时间?

+0

http://stackoverflow.com/questions/7680672/sql-query-to-select-first-top-n-records/7680733#7680733是在多个关系数据库中的这个问题的答案 –

回答

3

假设你正在使用SQL Server,使用TOP条款(limit仅用于MySQL的);例如: -

SELECT TOP 10 WeekNumber, SUM(Hours) 
FROM Information 
WHERE YEAR = 2011 
GROUP BY WeekNumber 
ORDER BY WeekNumber DESC 
+0

有没有办法使TOP子句动态的,它会根据它是什么星期换一次? – brachaalizah

+0

@brachaalizah这是没有意义的,weeknumber为每个行可能不同,顶的X条款适用于整个查询 –

0

使用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在您的查询,该做同样的事情的一开始,但将持续在连接所有后续查询。