感谢帮助我解决此问题的任何人,我使用的是SQL 17。
我有一个看起来像这样的表:
select * from ContractDim
| UserID | ContractID | BusinessLine | StartDate | EndDate |
1 111 AAA 01/06/2016 31/08/2016
1 222 AAA 01/01/2015 31/05/2015
另一个像这样
select * from NonWorkingDays
| UserID | NonWorkingDay |
1 02/07/2016
1 14/06/2016
1 03/05/2015
1 14/02/2015
所以我想要的是为每个NonWorkingday
添加合同号。结果应该是:
| UserID | NonWorkingDay | ContractID |
1 02/07/2016 111
1 14/06/2016 111
1 03/05/2015 222
1 14/02/2015 222
我该怎么做呢? 我被困在这里,Google和百度(我在中国)都没有帮助过。
答案 0 :(得分:0)
您可以使用INNER JOIN。我希望它对你有用。
SELECT
W.UserID
,W.NonWorkingDay
,C.ContractID
FROM NonWorkingDays W
INNER JOIN ContractDim C
ON C.UserID = W.UserID
AND W.NonWorkingDay >= C.StartDate
AND W.NonWorkingDay <= C.EndDate