在日期和时间戳之间使用有趣的SQL连接

时间:2017-06-20 06:03:31

标签: mysql sql-server datetime join timestamp

感谢帮助我解决此问题的任何人,我使用的是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和百度(我在中国)都没有帮助过。

1 个答案:

答案 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