0

大家好,我正在使用SQL server

我有一张桌子,上面有关于汽车和这些汽车发生的事件的完整列表。我需要的是能够根据每辆车的(Reg_No)注册号挑选出每辆车的最后一个条目。

我有以下工作要做

Table name = UnitHistory
Columns    = indx (This is just the primary key, with increment) 
Transdate(This is my date time column) and have Reg_No (Unique to each vehicle) .

如果有帮助,大约有 45 辆带有注册号的车辆?

我看过不同的例子,但他们似乎都有另一张桌子可以使用。请帮我。在此先感谢您的帮助

4

2 回答 2

0
WITH cte 
AS
(
     SELECT *,
         ROW_NUMBER() OVER
         (
             PARTITION BY Reg_No
             ORDER BY Transdate DESC
         ) AS RowNumber
     FROM unithistory
)
SELECT *
FROM cte
WHERE RowNumber = 1
于 2013-11-12T13:08:08.623 回答
0

如果您只需要索引和 transdatem 并且它们都是增量的(我假设较晚的日期对应于更高的索引号),那么最简单的查询将是:

  SELECT Reg_No, MAX(indx), MAX(Transdate)
    FROM UnitHistory
GROUP BY Reg_No

如果您想要已知 Reg_No 的所有数据,您可以使用 Dd2 的答案

如果您想要所有 Reg_No 及其数据的列表,您将需要一个子查询

于 2013-11-12T13:10:03.340 回答