2013-04-08 16 views
12

SQL'de yeniyim, herhangi bir yardım için teşekkür ederiz.oracle sql ifadesinde grup ifadesi ile iç birleştirme

İki tablonun var, employees ve jobs. employees, job_id değişkenini içerir (birden çok çalışan aynı iş_ID'ye sahip olabilir). jobsjob_id ve job_title değişkenlerini içerir (bir job_ID bir job_title'ye karşılık gelir; bu, eğer ilgileniyorsanız, oracle'deki hr şemasıdır).

Sorgunun geri dönmesini istiyorum: job_title, job_ID ve aynı job_Id sahip kişilerin sayısı. "Değil GRUP BY ifade" - BY ifade değil GRUP 00979. 00000:

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 

hata iletisi şudur::

ORA-00979

Aşağıdaki kod çalıştı * Neden:
* Eylem: Line'da
Hata: 83 Kolon: 8

Bunu düzeltmeme yardımcı olabilir misiniz?

cevap

21

Hata mesajı biraz yanıltıcı. select bir sürü alan ve bir toplam, select ve select her alan için group by her alan gerekir. Bu nedenle sorunuz şu şekilde olmalıdır:

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

Teşekkür ederiz, teşekkürler! – Cici