在sql数据库中为每个id字段选择最后一个条目

时间:2013-11-12 13:03:28

标签: sql

大家好我正在使用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辆车有注册号码吗?

我查看了不同的示例,但它们似乎都有另一个表可供使用。 请帮我。在此先感谢您的帮助

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

如果你想要一个包含所有Reg_No的列表,你需要一个子查询