【发布时间】:2018-03-06 19:53:54
【问题描述】:
我想在离我的结束日期最近的日期加入,无论是在我的结束日期之前还是之后。
表A:
A.ID A.StartDate A.EndDate A.ModifiedDate
1 1/1/17 1/15/18 1/16/18
2 2/1/17 3/1/18 3/2/18
表B
B.SetDate B.ID Reason
1/16/18 1 LeftGroup
3/8/18 2 Booted
3/6/18 2 Terminated
输出:应该是这样的
决赛:
ID StartDate EndDate ModifiedDate SetDate Reason
1 1/1/17 1/15/18 1/16/18 1/16/18 LeftGroup
2 2/1/17 3/1/18 3/4/18 3/6/18 Terminated
我的查询如下:
select *
from TableA
left join TableB b on a.id = b.id and AND TRUNC(SH.SET_DATE) BETWEEN TRUNC(CCP.STARTDATE) AND GREATEST(TRUNC(CCP.ENDDATE), TRUNC(CCP.MODIFIED_DATE))
--需要添加另一个连接来获取任何没有相关原因的松散结束日期。
类似的东西 在 a.id = b2.id 上左加入 TableB b2 和 ... 并且 tableb 为空
【问题讨论】: