使用Oracle中的sql获取过去7天的数据行

USS*_*SSR 2 sql oracle oracle-sqldeveloper

在查询中苦苦挣扎,返回数据行,包括过去7天的一些行.有很多左连接表,看起来我错过了什么.这是我的代码到目前为止的一个例子:

select a.a,
b.b,
c.c,
d.d,
e.e,
f.f,
s.start_date,
ack.acknowledge_date,
fin.finish_date, 
g.g,
h.h, 
i.i 
from table_a a, 
inner join table_b b on ... = ..., 
left join table_c c on ... = ..., 
left join table_d d on ... = ... ` 
Run Code Online (Sandbox Code Playgroud)

等等.

我想从过去7天的s.start_date,ack.acknowledge_date和Fin.finish_date列中获取数据行(如果有的话!)(我建议它是(sysdate -7)).但是,如果我执行以下操作:

select a.a,
b.b,
c.c,
...,
...,
...,
from ...
inner join ...
on ... = ...
left join ...
on ... = ...
left join`...
on ... = ...

where s.start_date >= sysdate -7 and 
ack.acknowledge_date >= sysdate -7 and 
fin.finish_date >= sysdate -7;
Run Code Online (Sandbox Code Playgroud)

然后我返回0行.但理想情况下,查询应返回所有表中的所有行,如果这些日期字段中的任何行也应返回它们,如果这些日期字段中没有数据,则将其保留为空,但所有其他行应该正常返回.

jar*_*rlh 10

如果OUTERWHERE条款,请不要在条款中加入表条件OUTER JOIN.ON转而将它们移到子句中!

LEFT JOIN <...> ON <...> = <...>
               AND s.start_date >= sysdate -7
Run Code Online (Sandbox Code Playgroud)