2010-06-05 71 views
0

我有一個類似於下面顯示的示例的表。我希望能夠爲每個賬戶選擇兩個最近的信息編號。我正在使用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 

回答

3

對於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 
+1

謝謝你。對於服務器類型的錯誤指導 – fishhead 2010-06-05 12:52:20

0

怎麼是這樣的:

​​
+0

子改變AccountNo到的OrderID請根據馬丁史密斯評論,感謝 – krock 2010-06-05 12:56:24

1

選擇最新的一組, 並選擇具有小於最新的一組最大日期集。

0

如果字段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