让我解释一下,我有一个列出员工实际工作时间的列表。我还有另一个表,可以显示期间以及该期间的开始日期和结束日期。我想要一个查询,该查询将花费一天的时间并找到它所处的时间段。
table 1
David 05/10/2013
Peter 05/16/2013
table 2
Period_Num Begin_Period End_Period
Period 1 01/05/2013 05/15/2013
Period 2 05/16/2013 12/31/2013
我希望决赛阅读:
David Period 1
Peter Period 2
有没有一种方法可以做到这一点sql
?
谢谢!
就像是
select t1.Name, t2.Period_Num
from table1 as t1
left outer join table2 as t2 on t1.date between t2.Begin_Period and T2.End_Period
您应该小心,因为如果表2中的句点重叠,则您的记录可能会重复。例如,如果您的数据是:
table 1
David 05/10/2013
Peter 05/16/2013
table 2
Period_Num Begin_Period End_Period
Period 1 01/05/2013 05/15/2013
Period 2 05/16/2013 12/31/2013
Period 3 03/08/2013 08/10/2013
你会收到
David Period 1
Peter Period 2
David Period 3 <- DUPLICATE
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句