大家好我正在使用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辆车有注册号码吗?
我查看了不同的示例,但它们似乎都有另一个表可供使用。 请帮我。在此先感谢您的帮助
答案 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的列表,你需要一个子查询