我有两个表格,格式如下。Oracle加入表
TABLE1
SMUN_FNL,START_DTE
111 , 07/10/2011
111 , 28/07/2015
TABLE2
SMUN,BASE_YMD
111 ,30/09/2011
111 ,30/12/2011
111 ,16/07/2015
111 ,01/02/2014
我要离开加入表1至表2,这样在TABLE1
每个记录TABLE1.SMUN_FNL = TABLE2.SMUN
AND TABLE2.BASE_YMD <= TABLE1.START_DTE
即匹配SMUN ,它应取最近 BASE_YMD 之前 START_DTE。
表2可能有也可能没有与START_DTE之前的日期匹配的SMUN或SMUN记录。 查询应该返回与TABLE1相同数量的记录。 (TABLE1 LEFT JOIN TABLE2我猜)
输出
SMUN_FNL|START_DTE |BASE_YMD
111 |07/10/2011|30/09/2011
111 |28/07/2015|16/07/2015
我把这样的
TABLE1.SMUN_FNL = TABLE2.SMUN_ID
AND TABLE1.START_DTE <= TABLE2.BASE_YMD
但是它拿起07/10/2011日期都记录作为连接两条记录满足TABLE1.START_DTE <= TABLE2.BASE_YMD
条件。
任何帮助表示赞赏。 谢谢
您如何期待得到111 | 28/07/2015 | 16/07/2015? 2015年7月28日不是<= 16/07/2015。 –
您需要解释您期望的业务逻辑将提供所需的输出 – APC
Andrey Belykh - table2.base_ymd应该与table1.start_dte相同或在此之前。即base_ymd <= start_dte –