我对sql很陌生,我正在尝试创建一个查询,它将对一个表进行排序(我已经让这个部分工作了),然后只显示每个组件和序列号的最新记录。
基本上,我正在进行签入/签出系统,只想列出每个特定组件的最新状态。每次签入和签出组件时,都会为该特定签入/签出发出唯一的ID。因此,我知道可以使用最高的惟一id来确定要在输出表中显示哪个记录。
(上图是我拥有的,下图是我想要的)
如何删除前两个字段重复的记录?
到目前为止,我所拥有的是:
SELECT [Check In/Out].Component, [Check In/Out].[Serial Number], [Check In/Out].[Unique ID], [Check In/Out].DateTime, [Check In/Out].Initials, [Check In/Out].[Check In/Out]
FROM [Check In/Out]
ORDER BY [Check In/Out].Component, [Check In/Out].[Serial Number], [Check In/Out].[Unique ID];
我发现了一个类似的代码(如下所示),但是我试图修改代码以使用我的代码失败:
SELECT Customers.ID, Customers.FullName, Customers.SaleDate
FROM Customers
WHERE [SaleDate] =
(SELECT Max([SaleDate])
FROM Customers AS X
WHERE X.[FullName] = [Customers].[FullName])
任何帮助都将不胜感激。
最佳答案
对于access sql,这可以工作:
SELECT *
FROM [Check In/Out] AS tA INNER JOIN (SELECT Component, [Serial Number],
MAX(Unique ID) AS highest_id
FROM [Check In/Out]
GROUP BY Component, [Serial Number]) AS
tB ON tA.Component = tB.Component
AND
tA.[Serial Number] = tB.[Serial Number]
AND
tA.[Unique ID] = tB.highest_id
关于sql - Access SQL查询:如何仅显示重复的最新记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40003449/