2017-01-05 9 views
0

Oracle SQLで機能を実行していますが、今は部門IDでコンソールAVG給与グループに印刷するグループ機能をコーディングしようとしています。別のテーブル。私の構文は正しいと思いますが、とにかく私はOracleエラーを受け取りました。グループ機能がOracle上で動作しません

SELECT e.department_id, d.department_name, e.AVG(salary) 
FROM  employees e 
JOIN  departments d 
ON  (e.department_id = d.department_id) 
GROUP BY department_id, department_name; 

ORA-00918:列あいまいに定義された 00918. 00000 - "欄あいまいに定義された" *原因:
処置:エラーエンラリネア:5、columna:10

+4

「*私は私の構文が正しいことだと思うけど、とにかく、私は* Oracleエラーを受け取った」 - あなたがエラーを取得した場合、その後、あなたの構文が正しくありません。 –

+0

私は知っています。 – Rattlesnake

答えて

1

すべての列をそれぞれの別名で修飾します。また、e.avg機能に適用されることはありませんが、列の給与

SELECT e.department_id, d.department_name, AVG(e.salary) 
FROM  employees e 
JOIN  departments d 
ON  (e.department_id = d.department_id) 
GROUP BY e.department_id, d.department_name; 
+0

あなたが私に提案したようにしてみましたが、新しいエラーが発生しました。 – Rattlesnake

+1

@GurV - 'e.department_id'を選択すると' d.department_id'でグループ化すると動作しません。あなたは一貫している必要があります。 – mathguy

+0

SELECT e.AVG(給与)、d.department_id、E は部門d.department_id BY(e.department_id = d.department_id) GROUP、d.department_name ON を日間JOIN社員FROM d.department_name 。 – Rattlesnake

関連する問題