2014-10-31 39 views
0

得到一個錯誤代碼以下Oracle錯誤00979

SELECT EMP_ID, EMP_LNAME, EMP_FNAME, ASSIGN_ID, ASSIGN_COMP, SOFTWARE.SFT_ID, COUNT(SFT_TITLE) 
FROM EMPLOYEE, ASSIGN_PC, SOFTWARE 
WHERE EMPLOYEE.EMP_ID = ASSIGN_PC.ASSIGN_EMP 
GROUP BY SFT_TITLE 

它,當我拿出的命令數和組,但我不能得到它,否則運行運行正常。任何幫助表示讚賞。

謝謝。

回答

0

首先,您應該使用明確的join語法。其次,你需要通過所有未參數的聚合函數的列聚合:

SELECT EMP_ID, EMP_LNAME, EMP_FNAME, ASSIGN_ID, ASSIGN_COMP, SOFTWARE.SFT_ID, COUNT(SFT_TITLE) 
FROM EMPLOYEE JOIN 
    ASSIGN_PC 
    ON EMPLOYEE.EMP_ID = ASSIGN_PC.ASSIGN_EMP CROSS JOIN 
    SOFTWARE 
GROUP BY EMP_ID, EMP_LNAME, EMP_FNAME, ASSIGN_ID, ASSIGN_COMP, SOFTWARE.SFT_ID; 

我不知道這種查詢的目的是什麼,但可以肯定的看起來缺少join條件到software表。我的猜測是,你真的想要這樣的東西:

SELECT EMP_ID, EMP_LNAME, EMP_FNAME, ASSIGN_ID, ASSIGN_COMP, SOFTWARE.SFT_ID, COUNT(SFT_TITLE) 
FROM EMPLOYEE JOIN 
    ASSIGN_PC 
    ON EMPLOYEE.EMP_ID = ASSIGN_PC.ASSIGN_EMP JOIN 
    SOFTWARE 
    ON ASSIGN_PC.SFT_ID = SOFTWARE.SFT_ID 
GROUP BY EMP_ID, EMP_LNAME, EMP_FNAME, ASSIGN_ID, ASSIGN_COMP, SOFTWARE.SFT_ID; 
+0

嗨戈登感謝您的意見。查詢的目的是顯示每個軟件標題的安裝次數。運行第二組命令時出現00904錯誤。第一套運作良好。謝謝你的幫助! – Joe 2014-10-31 02:20:21