如何识别括号内的标识符

时间:2015-02-27 23:39:54

标签: sql oracle compiler-errors syntax-error

你好,我在行

中遇到了问题
ON S.cid = P.cid

我得到了00904. 00000 - “%s:无效的标识符。我真的不明白如何解决它。我是SQL的新手,所以关于这个特定问题的任何输入都会有很大的帮助。这也许不是这个代码唯一的问题。所以,如果有人看到其他任何奇怪的东西,请给我一些意见。

SELECT S.cid, NLV(SUM(P.credits#),0) AS mathCred
FROM Students S
LEFT JOIN 
(SELECT P.cid , P.credits#
FROM PassedCourses P
JOIN HasClass H
ON P.code = H.code AND H.name = 'mathematical')
ON S.cid = P.cid
GROUP BY S.cid;

1 个答案:

答案 0 :(得分:2)

您需要子查询的别名:

SELECT S.cid, NLV(SUM(ph.credits#),0) AS mathCred
FROM Students S LEFT JOIN 
     (SELECT P.cid , P.credits#
      FROM PassedCourses P JOIN
           HasClass H
           ON P.code = H.code AND H.name = 'mathematical'
     ) ph
     ON S.cid = ph.cid
GROUP BY S.cid;

p在子查询中是已知的,但不在其外部。只需给子查询一个别名并使用它。