我对sql很陌生,我正在尝试创建一个查询,它将对一个表进行排序(我已经让这个部分工作了),然后只显示每个组件和序列号的最新记录。
基本上,我正在进行签入/签出系统,只想列出每个特定组件的最新状态。每次签入和签出组件时,都会为该特定签入/签出发出唯一的ID。因此,我知道可以使用最高的惟一id来确定要在输出表中显示哪个记录。
sql - Access SQL查询:如何仅显示重复的最新记录-LMLPHP
(上图是我拥有的,下图是我想要的)
如何删除前两个字段重复的记录?
到目前为止,我所拥有的是:

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/

10-11 22:59
查看更多