2013-04-08 26 views
12

我是新來的sql,任何幫助表示讚賞。通過oracle中的表達式加入內部組合sql

我有兩個表,employeesjobsemployees包含變量job_id(多個員工可以擁有相同的job_ID)。 jobs包含變量job_idjob_title(一個job_ID對應於一個job_title,如果您有興趣,這是oracle中的hr模式)。

我希望查詢返回:job_title,job_ID和具有相同job_Id的人數。

我嘗試以下的代碼:

select j.job_title, e.job_ID, count(e.job_ID) 
from employees e, jobs j 
where e.job_id=j.job_id 
group by e.job_Id 

的錯誤信息是:

ORA-00979:不是GROUP BY表達 00979. 00000 - 「不是一個GROUP BY表達式」 *原因:
*動作:
線路錯誤:83列:8

你能幫我解決這個問題嗎?

回答

21

該錯誤消息有點令人誤解。當你select一堆字段和一個聚合,你必須group by每個字段你select和只有你的select字段。所以你的查詢必須是:

select j.job_title, e.job_ID, count(e.job_ID) 
from employees e, jobs j 
where e.job_id=j.job_id 
group by e.job_Id, j.jobtitle 
+0

謝謝,謝謝! – Cici 2013-04-08 02:41:54