SQL Server加入条件之间

时间:2016-11-22 02:58:21

标签: sql sql-server sql-server-2008-r2

请先检查我的桌子。我的第一个表名为DinasHoHeader

    Kode    Desc    startdate   enddate
      1     Desc 1  2016-11-08  2016-11-08
      2     Desc 2  2016-11-16  2016-11-16

,第二个表名为CutOff

CutOffCode         Month    Year       from          to
CO-2016-10-16-15    10      2016    2016-09-16  2016-10-15
CO-2016-11-16-15    11      2016    2016-10-16  2016-11-15
CO-2016-12-16-15    12      2016    2016-11-16  2016-12-15

我想加入这两个。这是我尝试的

SELECT a.*, b.CutOffCode 
FROM DinasHoHeader a
LEFT JOIN CutOff b ON b.[From] BETWEEN a.[startdate] AND a.enddate  
                   AND b.[to] BETWEEN a.[startdate] AND a.enddate

但是根据我的查询,我无法获得CutOffCode

所以我的问题是:如何加入这两个表,以便我可以获得cutoffcode

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:3)

我认为你的逻辑是倒退的:

select dhh.*, co.CutOffCode
from DinasHoHeader dhh left join
     CutOff co
     on dhh.[startdate] between co.[From] and co.[to] and
        dhh.[enddate] between co.[From] and co.[to];

至少应该有一些匹配。