我如何获得2条最近的记录
问题描述:
我有一个类似于下面显示的示例的表。我希望能够为每个账户选择两个最近的信息编号。我正在使用Microsoft SQL 2000. 感谢您提供任何帮助。我如何获得2条最近的记录
AccountNo, DateOfOrder, OrderID
-----------------------------------------
123, March 1 2010, 1
222, March 3 2010, 2
123, April 1 2010, 3
345, March 15 2010, 77
123, june 1 2010, 55
123, march 5 2010, 33
345, march 1 2010, 99
222, june 1 2010, 7
222, june 2 2010, 22
答
对于SQL 2000这将工作
SELECT a1.AccountNo, a1.DateOfOrder, a1.OrderID
FROM Accounts a1
LEFT OUTER JOIN Accounts a2
ON a2.AccountNo = a1.AccountNo AND a1.DateOfOrder < a2.DateOfOrder
GROUP BY a1.AccountNo, a1.DateOfOrder, a1.OrderID
HAVING COUNT(*) < 2
答
选择最新的一组, 并选择具有小于最新的一组最大日期集。
答
如果字段DateOfOrder是要排序的,那么SELECT TOP 2 * from table .. ORDER BY DateOfOrder
如果不是这样,我认为最好的解决办法是一个InsertDate字段添加到表中。
在插入当前日期时间后,您可以使用触发器自动更新该字段。
然后,只需SELECT TOP 2 * from table .. ORDER BY InsertDate
+0
我认为该请求是顾客。 – Randy 2010-06-05 12:18:57
谢谢你。对于服务器类型的错误指导 – fishhead 2010-06-05 12:52:20