0
我有两个表格。 1表看起来像下面如何根据日期加入2个表格
session_start_dt | package_key
-------------------------------------------
01-01-2015 | 202
01-02-2015 | 203
01-14-2016 | 204
12-01-2015 | 206
03-02-2015 | 204
04-14-2016 | 202
第二表看起来像下面
package_key | term_start_date | term_end_date | Active | event
202 | 01-01-2014 | 01-01-2015 | Y | NS
202 | 01-01-2014 | 01-01-2015 | Y | CAN
203 | 01-02-2015 | 01-02-2016 | N | NS
204 | 01-02-2015 | 01-02-2016 | N | NS
206 | 01-02-2015 | 01-02-2016 | N | NS
206 | 01-01-2014 | 01-01-2015 | Y | NS
我需要从第一个表中获取所有记录,并得到,如果他是主动或不从第二表时, session_start_dt落在第二个表的term_start_date和term_end_date之间。
session_start_dt | package_key | Active
-------------------------------------------
01-01-2015 | 202 | Y
01-02-2015 | 203 | N
01-14-2016 | 204 | null
12-01-2015 | 206 | N
03-02-2015 | 204 | N
04-14-2016 | 202 | null
我写的查询关键词,比如
select package_key, session_start_dt from table a, table b
where SESSION_START_Dt BETWEEN TERM_START_DATE AND TERM_END_DATE AND
PACKAGE_KEY = PACKAGE_KEY and event not in ('CAN')
,它不是得到所要的结果。
@ Gordon Linoff - 我们如何用(+)运算符编写相同的查询? – beckham
@ beckham。 。 。你不应该那样做。使用显式外部连接语法。并且尽量忘记你们每个人学到了像(+)这样的东西。 –
缺少:'和事件不在('CAN')中 - 顺便说一句'和event!='CAN''。 – mathguy