【发布时间】:2021-07-19 04:44:51
【问题描述】:
我需要在三个不同条件下加入同一张表。以下是场景:
表 1:
ID,NAME,INSERT_DT
表2:
ID_FK,DESC,REC_BEG_DT,REC_END_DT,REC_INDC,SYSTEM_CODE,SERVICE_SRT_DT,SERVICE_END_DT
加盟条件:
1.
Table1.ID=Table2.ID_FK
SYSTEM_CODE='ABC'
REC_INDC='A'
Table1.INSERT_DT >= Table2.SERVICE_SRT_DT AND Table1.INSERT_DT <= Table2.SERVICE_END_DT
如果没有返回结果,则使用连接条件 2。
如果上述条件返回多个结果,则选择满足的一个
Table1.INSERT_DT >= Table2.REC_BEG_DT AND Table1.INSERT_DT <= Table2.REC_END_DT
-
Table1.ID=Table2.ID_FK SYSTEM_CODE='ABC' REC_INDC='A'
如果没有返回结果,则使用连接条件 3。
如果上述条件返回多个结果,则选择满足的一个Table1.INSERT_DT >= Table2.REC_BEG_DT AND Table1.INSERT_DT
-
Table1.ID=Table2.ID_FK SYSTEM_CODE='ABC'
如果没有结果返回 Null。
如果上述条件返回多个结果,则选择满足的一个Table1.INSERT_DT >= Table2.REC_BEG_DT AND Table1.INSERT_DT
添加样本输入和输出
表1
表2
编辑: 增加了一个场景
Tab1
|ID|NAME|INSERT_DT|
|1|XY|29/04/2021|
Tab2
ID_FK|DESC|REC_BEG_DT|REC_END_DT|REC_INDC|SYSTEM_CODE|SERVICE_SRT_DT|SERVICE_END
1|XY DESC1|1/4/2021|30/04/2021|I|ABC|1/3/2021|30/03/2021
1|XY DESC2|1/3/2021|30/03/2021|I|ABC|1/4/2021|30/04/2021
1|XY DESC2|1/3/2021|30/03/2021|I|ABC|1/3/2021|30/03/2021
逻辑上应该选择表中的第一条记录。
谢谢
【问题讨论】:
-
请以文本格式提供示例数据和所需的输出。
-
“如果上述条件返回多个结果,则选择满足..的那个。”因此查询必须返回不超过一行。 ?
-
是的@Serg,它将返回不超过一行
-
@KaziMohammadAliNur 我已添加
-
要复制情况示例输入需要采用文本格式而不是图像。请上传文本数据。