我正在使用 SQL Server 2008。我有一个包含手动扫描仪数据的表。表名是 ScanData。
Barcode ScanDate ScannerId
******* ******** *********
A000012 2013-02-19 11:55:02.900 SGH205YXHD
A000015 2013-02-21 11:30:02.767 SGH205YXHD
A000017 2013-02-21 11:29:19.507 SGH205YXHD
A000012 2013-02-19 10:58:02.900 5C7152P0SB
A000015 2013-02-19 10:41:02.400 SGH205YXHD
A000018 2013-02-19 10:25:02.140 5C7152P0SB
我有第二个表将条形码链接到产品。表名是条形码。
Barcode ProductID
******* *********
A000012 CCC3047A-2E85-413F
A000015 2C4CD739-F09D-44D0
A000018 F48C9B37-7B2F-4446
我需要加入表格但没有重复的条形码值。如果有重复,则应选择较高的 TimeStamp。所以结果应该是这样的:
Barcode ScanDate ScannerId ProductID
******* ******** ********* *********
A000012 2013-02-19 11:55:02.900 SGH205YXHD CCC3047A-2E85-413F
A000015 2013-02-21 11:30:02.767 SGH205YXHD 2C4CD739-F09D-44D0
A000017 2013-02-21 11:29:19.507 SGH205YXHD null
A000018 2013-02-19 10:25:02.140 5C7152P0SB F48C9B37-7B2F-4446
请注意,在第三行返回 ProductID 的空值非常重要。
我已经尝试使用 DISTINCT、PARTITION BY 和 GROUP BY,但是我为消除重复而遵循的示例没有加入第二个表。