使用SQL Server 2012 Management Studio。
如果在过去2小时内扫描了任何'item_code_1',我需要识别'JobNumber'。 'item_code_1'包含'JobNumber'日#和序号。
表1
JobNumber |Item_code_1 |Scanned|
12345 |12345_01_01 |Y |
12345 |12345_01_02 |Y |
12345 |12345_01_03 |Y |
1234567 |1234567_01_01 |Y |
1234567 |1234567_01_02 |Y |
1234567 |1234567_01_03 |Y |
表2(当前时间= 2016-02-08 16:52:32.547)
Scanned_date_time |Item_Code_1 |
2016-02-08 16:52:32.547 |12345_01_01 |
2016-02-08 16:52:32.547 |12345_01_02 |
2016-02-08 16:52:32.547 |12345_01_03 |
2016-02-08 **13**:52:32.547 |1234567_01_01|
2016-02-08 **13**:52:32.547 |1234567_01_02|
2016-02-08 **13**:52:32.547 |1234567_01_03|
在这种情况下看:
JobNumber 1234567 item_code_1
超过2小时前扫描过。
我只想查看JobNumber,如果在最近两小时内根据Scanned_date_time
扫描了item_code_1(至少1个)
答案 0 :(得分:0)
我认为你只需要在DATEDIFF
子句中使用WHERE
。如果它需要更精确,你可以使用另一个单位(我的例子是几秒钟)。
SELECT *
FROM table1 t1
JOIN table2 t2 ON t1.item_code1 = t2.item_code_1
WHERE DATEDIFF(ss, scanned_date_time, getdate()) < 7200