如何识别括号内的标识符

how to recognize an identifier inside a parenthesis

您好,我的行有问题

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;

您需要子查询的别名:

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 在子查询中是已知的,但在它之外是未知的。只需给子查询一个别名并使用它。