2013-04-08 15 views
12

Sono nuovo di sql, qualsiasi aiuto è apprezzato.inner join con group by expression in oracle sql

Ho due tabelle, employees e jobs. employees contengono una variabile job_id (più dipendenti possono avere lo stesso ID job). jobs contengono le variabili job_id e job_title (un ID di processo corrisponde a un titolo di lavoro, questo è lo schema hr in oracle se si è interessati).

Desidero restituire la query: job_title, ID_progetto e il numero di persone che hanno lo stesso ID_lavoro.

ho provato il seguente codice:

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 

il messaggio di errore è:

ORA-00979: non un GROUP BY espressione 00979. 00000 - "non un GROUP BY espressione" * Causa:
* Azione:
ERRORE alla linea: 83 Colonna: 8

Puoi aiutarmi a risolvere questo problema?

risposta

21

Il messaggio di errore è un po 'fuorviante. Quando si select un gruppo di campi e un aggregato, è necessario ogni campo è select e solo i campi è select. Quindi la tua domanda deve essere:

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

Grazie, grazie! – Cici