2013-04-08 26 views
12

Tôi mới đến sql, bất kỳ trợ giúp được đánh giá cao.bên trong tham gia với nhóm bằng cách biểu hiện trong oracle sql

Tôi có hai bảng, employeesjobs. employees chứa biến số job_id (nhiều nhân viên có thể có cùng job_ID). jobs chứa các biến số job_idjob_title (một job_ID tương ứng với một job_title, đây là lược đồ hr trong oracle nếu bạn quan tâm).

Tôi muốn truy vấn trả về: job_title, job_ID và số người có cùng job_Id.

Tôi đã thử các mã sau:

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 

được thông báo lỗi là:

ORA-00.979: không phải là một GROUP BY biểu 00979. 00000 - "không phải là một GROUP BY khái niệm" * Nguyên nhân:
* Hành động:
Lỗi tại dòng: 83 Cột: 8

Bạn có thể giúp tôi khắc phục vấn đề này không?

Trả lời

21

Thông báo lỗi có chút sai lệch. Khi bạn select một loạt các trường và tổng hợp, bạn phải group by mọi trường bạn select và chỉ các trường bạn select. Vì vậy, truy vấn của bạn phải là:

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

Cảm ơn bạn, cảm ơn bạn! – Cici

Các vấn đề liên quan