代码之家  ›  专栏  ›  技术社区  ›  fishhead

如何获取最近的两个记录

  •  0
  • fishhead  · 技术社区  · 16 年前

    谢谢你能提供的任何帮助。

    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
    
    4 回复  |  直到 16 年前
        1
  •  3
  •   Martin Smith    16 年前

    对于SQL2000,这是可行的

    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
    
        2
  •  1
  •   Randy    16 年前

    并选择最大日期小于最新日期集的集。

        3
  •  0
  •   Amirshk    16 年前

    如果字段DateOfOrder是您要排序的依据,那么 SELECT TOP 2 * from table .. ORDER BY DateOfOrder

    您可以让触发器在插入时用当前日期时间自动更新该字段。

    SELECT TOP 2 * from table .. ORDER BY InsertDate

        4
  •  0
  •   krock    16 年前

    select * from Account a
    where OrderID in
      (select top 2 OrderID from Account
       where AccountNo = a.AccountNo
       order by DateOfOrder desc)