Oracle sql错误,返回错误“ORA-00920:无效的关系运算符”

时间:2017-05-25 19:42:22

标签: sql oracle

我已经创建了这样一个表,需要从标记数据中获取jobID,并从另一个具有JobID的表中检索JobDescription我是这个整个SQL环境的新手,并且无法找到一种方法来使以下程序正确。

image

select jobdescription,jobid from job
Where jobid =(select jobid from contract_job having max(to_date(enddate)-
to_date(startdate)) as date_diff);

顺便说一句,我在网站上发现了类似的问题,但那些对我没什么帮助,可能是因为我对这个领域还没有更多的了解。 让我解释一下如果难以解释的情况。 我有两张桌子:

JOB (JobID, JobDescription, UrgencyLevel, JobAddress, Postcode, SelectedBusinessABNNumber, IndustryID) CONTRACT_JOB (JobID, StartDate, EndDate, CorporateClientNo)

我在这里要做的是,我希望通过减去EndDate和StartDate来获得具有最高合同期的作业名称(JobDescription),并显示具有相同JobID的JobDescription。

2 个答案:

答案 0 :(得分:0)

select top 1 j.jobdescription
    from job_contract jc
    inner join job j on j.jobid=jc.jobid
    order by jc.enddate-jc.startdate desc

答案 1 :(得分:-1)

这会奏效。如果有两个相同的句点,你可以使用rank而不是rownum。

WITH all_periods AS (
SELECT MAX(enddate - startdate) as period, jobid
  FROM contract_job
GROUP BY jobid
ORDER BY 1 DESC)
SELECT jobdescription, jobid
  FROM all_periods
  JOIN job USING (jobid)
 WHERE rownum = 1