在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