2016-11-22 90 views
0

请先查看我的表格。我的第一个表被称为DinasHoHeaderSQL Server连接条件

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

对不起,我的英语不好。

+3

你应该解释你想要实现的逻辑。什么是理想的结果,他们是如何计算的? –

+0

这两张桌子有没有关系?加入日期不会给你确切的结果。 – Munavvar

回答

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]; 

这至少应该有一些比赛。