Tsql 如何选择每组最后5条记录
我正在做一个查询,查看特定时间段内的每个部分事务。根据部件的不同,它可能只有1个事务或1000个以上的事务。我只需要拉每部分的最后5个交易。这是我的查询权限,没有选择每个部件的最后5个事务Tsql 如何选择每组最后5条记录,tsql,ssms,Tsql,Ssms,我正在做一个查询,查看特定时间段内的每个部分事务。根据部件的不同,它可能只有1个事务或1000个以上的事务。我只需要拉每部分的最后5个交易。这是我的查询权限,没有选择每个部件的最后5个事务 SELECT partnum, trandate, extcost FROM parttran WHERE trandate between '2012-05-15' and '2013-05-14' 我非常感谢你的帮助 在以下情况下总是有用的:具有如下窗口功能的 我非常
SELECT partnum, trandate, extcost
FROM parttran
WHERE trandate between '2012-05-15' and '2013-05-14'
我非常感谢你的帮助 在以下情况下总是有用的:具有如下窗口功能的
我非常感谢你的帮助!很抱歉,这让我很痛苦,但当我尝试运行它时,它告诉我:Msg 102,15级,状态1,第4行“=”附近的语法不正确。我认为它是在谈论=按rn=行数。你能帮我解决这个问题吗?再次感谢你所做的一切!如果您至少使用SQLServer2005,它应该可以工作。但是,因为我现在正在路上,所以我不能给你举个例子。我这方面的一个简单错误是,我添加了一个字段,没有在其中加一个逗号!!再次感谢大家!!!
WITH CTE AS
(
SELECT partnum, trandate, extcost,
rn = ROW_NUMBER() OVER (PARTITION BY partnum ORDER BY trandate DESC)
FROM parttran
WHERE trandate between '2012-05-15' and '2013-05-14'
)
SELECT partnum, trandate, extcost FROM CTE WHERE rn <= 5