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
バーコードを製品にリンクする 2 番目のテーブルがあります。テーブル名はバーコードです。
Barcode ProductID
******* *********
A000012 CCC3047A-2E85-413F
A000015 2C4CD739-F09D-44D0
A000018 F48C9B37-7B2F-4446
テーブルを結合する必要がありますが、バーコード値が重複していません。重複がある場合は、より高いタイムスタンプを選択する必要があります。したがって、結果は次のようになります。
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
3 行目の ProductID が null 値で返されることが非常に重要であることに注意してください。
DISTINCT、PARTITION BY、および GROUP BY を使用して試みましたが、重複を排除するために従った例では、2 番目のテーブルが結合されていませんでした。