sql - ORA-00920: 具有多个连接并使用最大值的选择子句中的无效关系运算符
问题描述
当满足以下条件时,我尝试使用 select 语句返回行:
第一个条件:员工的 EMPLOYEE_HOME_ORG 不等于 396000 或 396010 并且 DEGREE_HIERARCHY 小于 40 并且 FACULTY_DEGREE_CODE 不等于 'MS' 或 'MA'
条件二:员工的DEGREE_HIERARCHY小于40,员工的FACULTY_SUBJECT_CODE和FACULTY_DEGREE_CODE不在SUBJ_CODE_CROSSWALK表中。
我收到以下错误:
ORA-00920: invalid relational operator
请参阅下面的代码,非常感谢任何帮助!
SELECT V.FACULTY_DEGREE_CODE,
V.FACULTY_SUBJECT_CODE,
I.EMPLOYEE_DEPARTMENT_HOME_ORG,
MAX(D.DEGREE_HIERARCHY)
FROM V_DEGRESS V
JOIN DEGREE_CROSSWALK D
ON V.FACULTY_DEGREE_CODE =
D.DEGREE_CODE
JOIN I_REPORT_DETAILS I
ON V.PIDM = I.HR_PIDM
LEFT JOIN SUBJ_CODE_CROSSWALK S
ON V.FACULTY_DEGREE_CODE =
S.FACULTY_DEGREE_CODE
LEFT JOIN SUBJ_CODE_CROSSWALK S
ON S.FACULTY_SUBJECT_CODE =
V.FACULTY_SUBJECT_CODE
WHERE V.PERSON_SKEY = 12345
AND
(
(I.EMPLOYEE_DEPARTMENT_HOME_ORG != 396000
and I.EMPLOYEE_DEPARTMENT_HOME_ORG != 396010)
and (d.DEGREE_HIERARCHY < 40 )
and
(V.FACULTY_DEGREE_CODE != 'MS' and
V.FACULTY_DEGREE_CODE != 'MA')
)
--and NOT ONE SUBJ CODE CROSSWALK
AND
(
(D.DEGREE_HIERARCHY < 40)
AND
(V.FACULTY_SUBJECT_CODE,
V.FACULTY_DEGREE_CODE NOT IN
(SELECT S.FACULTY_SUBJECT_CODE,
S.FACULTY_DEGREE_CODE
FROM SUBJ_CODE_CROSSWALK
S
WHERE S.FACULTY_SUBJECT_CODE =
V.FACULTY_SUBJECT_CODE
AND V.FACULTY_DEGREE_CODE =
S.FACULTY_DEGREE_CODE
)
)
)
GROUP BY V.FACULTY_DEGREE_CODE,
V.FACULTY_SUBJECT_CODE,
I.EMPLOYEE_DEPARTMENT_HOME_ORG
解决方案
除了因为您使用相同的别名两次加入表而可能存在拼写错误之外,您的查询中存在语法错误。
第二个条件包含一个元组,但输入错误。它应该像在括号中一样(V.FACULTY_SUBJECT_CODE, V.FACULTY_DEGREE_CODE)
。改变:
AND
(V.FACULTY_SUBJECT_CODE,
V.FACULTY_DEGREE_CODE NOT IN
(SELECT S.FACULTY_SUBJECT_CODE,
S.FACULTY_DEGREE_CODE
FROM ...
为了:
AND
(V.FACULTY_SUBJECT_CODE,
V.FACULTY_DEGREE_CODE) NOT IN
(SELECT S.FACULTY_SUBJECT_CODE,
S.FACULTY_DEGREE_CODE
FROM ...
此外,您需要在末尾删除一个括号以确保它们正确平衡。
注意:您需要确保列S.FACULTY_SUBJECT_CODE
并且S.FACULTY_DEGREE_CODE
不包含空值。如果他们这样做,此语法将不会产生您想要的结果。您需要将此部分重新表述为“反加入”。
推荐阅读
- node.js - 部署后无法使用 mongoose 访问 mongodb(nodejs、express、共享主机)
- python - 如果我在当前类中有同名的函数,我如何调用父方法(如果可能)
- vue.js - 如何使嵌套路由继承父级的属性?
- spring-cloud - Spring Cloud Stream - 消费消息时出现 JsonParseException
- textview - 粗体/斜体格式不会出现在 TextView (Vala/Gtk3) 中的字体格式上
- ios - 如何定义一个枚举,该枚举返回一个满足没有原始值的字符串的“需求”的字符串?
- reactjs - React - 用户身份验证
- node.js - 异步函数不返回值,但承诺
- mongodb - 如何在 docker mongodb 容器中允许任何 IP
- javascript - 神秘的错误导致应用程序在发生后表现不同