【发布时间】:2020-09-22 18:41:50
【问题描述】:
我正在计算视图中一个名为“Degree Level”的字段。这是“学位”表中的一个字段,该表显示了每个教员的学位。一名教员可以拥有多个学位。
字段“学位级别”也在“Crosswalk_Table”表中。 我想根据 Crosswalk_table 中“Degree_Hierarchy”列中的最大值为教员选择学位级别。
下面的代码显示学位级别的“硕士”而不是“博士”(具有更高的层次值)。非常感谢您的任何帮助。
CAST (
(SELECT DEGREE_LEVEL
FROM Degrees D, Crosswalk_Table E
WHERE
E.DEGREE_HIERARCHY =
(SELECT MAX (DEGREE_HIERARCHY)
FROM Crosswalk_Table
WHERE DEGREE_CODE = D.FACULTY_DEGREE_CODE)
AND D.FACULTY_DEGREE_CODE = E.DEGREE_CODE
AND D.PERSON_SKEY = SRC.PERSON_SKEY
AND ROWNUM <=1
ORDER BY DEGREE_HIERARCHY DESC)
AS VARCHAR2 (50))
样本数据:
度数表:
Person_skey Degree_Code
-------------------------
123456 MA
123456 JD
Crosswalk_Table:
degree_level degree_code degree_hierarchy
---------------------------------------------
master MA 30
doctor JD 40
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
@GordonLinoff 我添加了示例数据,谢谢!
标签: sql oracle select plsql max