我在嘗試編寫一個查詢,列出以最大總信用點數註冊的學生。總和查詢的最大值
這裏是我的查詢:
SELECT s.S_ID,
s.S_LAST,
s.S_FIRST,
s."Total Credits"
FROM
(SELECT q2.S_ID,
q2.S_LAST,
q2.S_FIRST,
sum(q1.CREDITS) "Total Credits"
FROM
(SELECT COURSE_NO,
CREDITS
FROM COURSE) q1
JOIN
(SELECT s.S_ID,
s.S_LAST,
s.S_FIRST,
cs.COURSE_NO
FROM STUDENT s
JOIN ENROLLMENT e ON s.S_ID = e.S_ID
JOIN COURSE_SECTION cs ON e.C_SEC_ID = cs.C_SEC_ID) q2 ON q1.COURSE_NO = q2.COURSE_NO
GROUP BY q2.S_ID,
q2.S_LAST,
q2.S_FIRST) q3
GROUP BY s.S_ID,
s.S_LAST,
s.S_FIRST,
s."Total Credits"
WHERE "Total Credits" = max("Total Credits");
這不起作用,我收到此錯誤:
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
Error at Line: 23 Column: 1
任何幫助將不勝感激。
你的外選擇和'q3'不是從's'和你上次'where'條款不正確,您使用的 –
的數據庫?你想要所有學分最高的學生嗎? – Bohemian
這是使用Oracle SQL Developer。是的,我想要所有學分最高的學生,而不僅僅是一個。 – user3664923