是否可以通过序列号组合两个表,并使用一个表中的日期范围和另一个表中的日期组合?
我有2个表:table.events包含跟踪器的事件数据,而table.dates包含跟踪器的运行日期。跟踪器可以多次运行,因此每次打开时都有一个UID。例如。跟踪器A可以具有UID A1,A2,A3等。
如何将table.events与
之类的数据结合Date,Serial,Quality,
12/01/2019,A,1,
12/01/2019,B,2,
13/01/2019,C,3,
14/01/2019,A,4,
15/01/2019,A,5,
16/01/2019,B,6,
17/01/2019,B,7,
17/01/2019,C,8,
17/01/2019,B,9
带有table.dates
Start_Date,End_Date,Serial_id,
15/01/2019,18/01/2019,A1,
08/01/2019,14/01/2019,A2,
10/02/2019,18/01/2019,B1,
13/01/2019,16/01/2019,C1,
17/02/2019,18/01/2019,C2
给我最终结果,例如
Date,Serial,Serial_id,Quality,Start Date,End Date
12/01/2019,A,A1,1,15/01/2019,18/01/2019
12/01/2019,B,B1,2,10/02/2019,18/01/2019
13/01/2019,C,C1,3,13/01/2019,16/01/2019
14/01/2019,A,A1,4,15/01/2019,18/01/2019
15/01/2019,A,A2,5,08/01/2019,14/01/2019
16/01/2019,B,B1,6,10/02/2019,18/01/2019
17/01/2019,B,B1,7,10/02/2019,18/01/2019
17/01/2019,C,C2,8,17/02/2019,18/01/2019
17/01/2019,B,B1,9,10/02/2019,18/01/2019
任何帮助将不胜感激。
一个日期将包含多个序列号,所以我也想按序列号加入。
例如
我有跟踪器D1和E1都在2019年1月23日进行跟踪。我在table.events中有D和E的单独条目,因此我需要按日期范围和序列ID的子字符串进行匹配。
答案 0 :(得分:0)
您只想要join
吗?
select a.*, b.*
from a join
b
on b.serial like concat(a.serial, '%') and
a.date >= b.start_date and a.date <= b.end_date;