2015-05-25 20 views
-1

這是我的sql代碼,有誰能幫我一個忙嗎?ORACLE:我的sql有什麼問題?編譯後爲什麼不能給我一筆總價值?

CREATE VIEW "UOS_VU_STUDENT_AVERAGE" ("Fullname", "Average score") AS 
    SELECT 
G.TITLE_NAME||' '||A.FIRST_NAME||' '||A.LAST_NAME AS "Fullname", 
    SUM (C.GRADE)/(SUM(F.CREDITS)/10) AS "Average score" 

from 
STUDENT A, 
COURSE B, 
STUDENT_MODULE C, 
STUDENT_SESSION D, 
STATUS_LOOK_UP E, 
MODULE F, 
TITLE_LOOK_UP G 


where 
B.COURSE_TITLE = 'Information Management' AND 
D.COURSE_LEVEL = '1' AND 
D.STATUS_ID = '1' AND 
B.COURSE_ID = A.COURSE_ID AND 
A.STUDENT_ID = D.STUDENT_ID AND 
D.STUDENT_ID = C.STUDENT_ID AND 
D.ACADEMIC_YEAR_ID = C.ACADEMIC_YEAR_ID AND 
C.MODULE_CODE = F.MODULE_CODE AND 
A.TITLE_ID = G.TITLE_ID 

GROUP BY 
G.TITLE_NAME, 
A.FIRST_NAME, 
A.LAST_NAME, 
C.GRADE, 
C.MODULE_CODE, 
F.CREDITS 

ORDER BY LAST_NAME 

理想的情況下,它應該顯示我只是一個單行包括大衛史密斯先生的他的名字的平均得分,但我已經有了不同。

但我得到的是他在1級

不知道所有的成績(分數)的列表,我把它錯了...希望有人能夠幫助我。非常感謝。

+0

嘗試從您的Group By中取出最後三列。 –

+0

STATUS_LOOK_UP不是您的where子句的一部分,您確定需要它嗎?你知道sql中有一個AVG函數嗎?你的小組似乎不太對,但我在工作我無法測試你的代碼 – loli

回答

1

您有錯誤的group by子句。刪除處於聚合函數中的列:

GROUP BY G.TITLE_NAME, A.FIRST_NAME, A.LAST_NAME 

而且,模塊代碼似乎完全沒有必要。

+0

哦,非常感謝你!我只是試過,它工作,我刪除了不必要的部分。 –

+1

@ S.P.K如果此答案解決了您的問題,請單擊左側的複選標記以將其標記爲已接受。 –