我有一个sql查询
SELECT ("SL/VL".TOTAL_SICK_LEAVE - SUM(EMPLOYEE_INFO.DAYS_TAKEN_SICK))
FROM EMPLOYEE_INFO
INNER JOIN "SL/VL"
ON EMPLOYEE_INFO.EMPLOYEE_NAME = "SL/VL".EMPLOYEE_NAME
where contract_year='Year 1'and
employee_info.EMPLOYEE_NAME = :P4_EMPLOYEE_NAME
GROUP BY "SL/VL".TOTAL_SICK_LEAVE
当我使用 oracle apex 5.1 时,它给了我想要的结果。现在,我将数据库升级到 Oracle 18.1,我收到“ORA-20999: Column name "("SL/VL".TOTAL_SICK_LEAVE-SUM(EMPLOYEE_INFO.DAYS_TAKEN_SICK))”对于 LOV SQL 查询无效。请确保您为您的列使用有效的别名。”
最佳答案
18.1 似乎需要表达式 ("SL/VL".TOTAL_SICK_LEAVE - SUM(EMPLOYEE_INFO.DAYS_TAKEN_SICK))
上的列别名。也许如果你将 SQL 重做为
SELECT (s.TOTAL_SICK_LEAVE - SUM(e.DAYS_TAKEN_SICK)) AS SICK_LEAVE_REMAINING
FROM EMPLOYEE_INFO e
INNER JOIN "SL/VL" s
ON e.EMPLOYEE_NAME = s.EMPLOYEE_NAME
WHERE CONTRACT_YEAR = 'Year 1' AND
e.EMPLOYEE_NAME = :P4_EMPLOYEE_NAME
GROUP BY s.TOTAL_SICK_LEAVE
数据库会更快乐。
关于Oracle 18.1 sql查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52084577/