2017-04-14 84 views
0

我有2代表在那里我开始和每个为每个在这两个表的最后一天,我需要加入他们的行列,这样的记录是有效日期两个表时间依赖性加入

Table 1 
EmpId StartDate EndDate 
1 1/2/2017 12/31/9999 
1 8/10/2016 1/1/2017 
1 10/11/2015 8/9/2016 
1 2/10/2014 10/19/2015 

Table2 
JobId EMPID StartDate EndDate 
J1 1  1/2/2017 12/31/9999 
J2 1  8/10/2016 1/1/2017 
J3 1  2/10/2014 8/9/2016 

Result Set Should be something like this 
EmpId StartDate EndDate 
1 1/2/2017 12/31/9999 J1 
1 8/10/2016 1/1/2017  J2 
1 10/11/2015 8/9/2016  J3 
1 2/10/2014 10/19/2015 J4 

谢谢提前 斯里兰卡

+0

没有** 1 2014年2月10日2015年10月19日J4 **表2中。你从哪里得到这些信息? –

+0

遗憾的是必须是J3 – SQL3026

+0

你尝试过这么远吗? –

回答

0

你可以测试一个这样的查询:

SELECT 
    t1.* 
    ,t2.JobId 
FROM 
    table1 t1 
LEFT JOIN 
    table2 t2 
ON 
    t1.EmpId = t2.EmpId 
AND 
    t1.StartDate = t2.StartDate 
AND 
    t1.EndDate = t2.EndDate; 
+0

这将找不到匹配3和4记录,因为日期的条件,则输出将是这样的 1 2017年1月2日12/31/9999 J1 1 2016年8月10日2017年1月1日J2 1二零一五年十月十一日2016年8月9日 1 2014年2月10日2015' 年10月19日 – SQL3026

+0

如果你不想有一排3和4的变化** LEFT JOIN **的** INNER JOIN ** –

+0

这从T1 2条记录将永不满足的条件对T2 ..我想从T1 1 2015年10月11日2016年8月9日 1 2014年2月10日2015年10月19日的所有记录 – SQL3026