在Oracle SQLDeveloper中,我试图运行一个查询,在该查询中我发现返回特定日期作为StartDate,但如果最早的现有日期大于指定日期,则返回最小日期开始日期。我试着用CASE语句来做这件事,但我一直得到“缺少右括号”的错误。这里是我的代码到目前为止:如果Date不存在,返回min(DATE)
select
a.program
, a.match_file
, (case when b.date = '27-JAN-13' then b.date else min(b.date end)) as Startdate
from Schema1.program a, Schema1.detail b
where a.match_file = b.matchfile
and (case when b.date=' ' then min(b.date) else b.date end) = '27-JAN-13'
group by a.program, a.match_file
;
有人可以让我知道,如果我去这个错误?我也尝试过使用IF语句和一些不同的UNION语句,但我无法让它返回我想要的。
只是一个建议,也许第一个答案或解决问题的OP,然后添加recomendation。我很困惑,想看看这个合并如何解决问题。你的答案仍然正确。 –
感谢您的回复pkm!我试着运行你的查询,但我得到了[Error ORA-00932](http://stackoverflow.com/questions/18330123/lookup-error-ora-00932-inconsistent-datatypes-expected-date-got-number)。我尝试使用to_date()来解决这个问题,但我仍然得到了同样的错误。 – Jacob
哦等一下! to_date函数确实有效!我只需要使用可识别的日期格式。 – Jacob