我想写一个查询,列出注册了最高总积分的学生。
SELECT q3.S_ID,
q3.S_LAST,
q3.S_FIRST,
max( q3.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 q3.S_ID,
q3.S_LAST,
q3.S_FIRST;
但它不起作用。这是我得到的错误:
ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Error at Line: 28 Column: 21
有人可以帮忙吗?
谢谢
答案 0 :(得分:1)
我很确定(没有Oracle机器可以测试这个)你的别名是问题:
sum(q1.CREDITS) Total Credits
应该是
sum(q1.CREDITS) "Total Credits"
因此
max( q3.Total Credits)
应该是
max( q3."Total Credits")
但是可能还有更多,正如我所说,我没有Oracle机器可以测试它。