经过多次尝试和磨难,我能够编写以下查询。
SELECT repName.repID, repName.Rep_Name, Positions.Position, repName.Roster, DataSheet.ENTERED
FROM DataSheet INNER JOIN
repName ON DataSheet.EE_ID = repName.repID INNER JOIN
Positions ON repName.Job_Code = Positions.Job_Code
WHERE (DataSheet.ENTERED <= @ENTEREDEnd)
GROUP BY repName.repID, repName.Rep_Name, Positions.Position, repName.Roster, DataSheet.ENTERED, DataSheet.ITEM_ASSIGNED
HAVING (DataSheet.ENTERED >= @ENTEREDStart) AND (DataSheet.ITEM_ASSIGNED = @ITEM_ASSIGNED) AND (repName.Roster = N'YES')
ORDER BY DataSheet.ENTERED
我仍在摸索SQL,想知道是否可以修改这个查询,使其只返回顶部值或第1行。我想把这个值发送到我表格上的一个文本框中。
感谢
要返回前N行,只需使用以下
SELECT TOP (1) /* rest of your query*/
你也可以将PERCENT与你的TOP子句一起使用,比如这个
SELECT TOP (10) PERCENT /* rest of your query*/
如果你在TOP N中有相同的值,并且你希望所有行的TOP值都相同,你可以使用类似的东西
SELECT TOP (N) WITH TIES /* rest of your query*/
IF SQL CE使用了此TOP(N)。必须用括号将数字括起来
在查询中使用Top N或Limit N将返回最旧的一行,因为您使用订购它们
ORDER BY DataSheet.ENTERED
如果您希望检索最新的一行,请将您的排序设置为
ORDER BY DataSheet.ENTERED desc
取决于数据库风格
mssql select top 1
末端的mysql limit 1
oracle where rownum <=1