我正在尝试使用Microsoft SQL Server编写SQL查询。
我的表与此类似:
bardcode | products | timestamp
1234 | 12 | 2013-02-19 00:01:00
1234 | 17 | 2013-02-19 00:01:00
432 | 10 | 2013-02-19 00:01:00
432 | 3 | 2013-02-19 00:02:00
643 | 32 | 2013-02-19 00:03:00
643 | 3 | 2013-02-19 00:03:00
123 | 10 | 2013-02-19 00:04:00
我正在尝试根据最新的时间戳获取一系列独特的条形码。
这是我一直在考虑的无效查询:
SELECT DISTINCT [Barcode], [Timestamp]
FROM [InventoryLocatorDB].[dbo].[Inventory]
WHERE max([Timestamp])
编辑我还想保留其他列。我是加入还是做某事。
例如,我想选择带有最新时间戳的条形码,并希望所有其他列信息都附带,例如产品专栏
答案 0 :(得分:3)
这应该有效:
SELECT [Barcode], max([TimeStamp])
FROM [InventoryLocatorDB].[dbo].[Inventory]
GROUP BY [Barcode]
修改强>
SELECT [Barcode], [Products], [TimeStamp]
FROM [InventoryLocatorDB].[dbo].[Inventory] AS I
WHERE [TimeStamp] = (SELECT MAX([TimeStamp])
FROM [InventoryLocatorDB].[dbo].[Inventory]
WHERE [Barcode] = I.[Barcode])
查询使用相同的BarCode
/ TimeStamp
保留元组。根据{{1}}的粒度,这可能无效。
有许多方法可以过滤"以上结果。
E.g。每个TimeStamp
只有一个元组,最新BarCode
,最大值TimeStamp
:
Products