Oracle 18.1 sql查询错误

标签 oracle oracle-apex

我有一个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/

相关文章:

sql - 如何在 Oracle 中转义单引号?

sql - 在 Oracle 10g 中将行旋转到列

oracle - 如何翻译或覆盖 Oracle APEX 中的标准文本字符串?

Oracle APEX 5 主页未正确加载

javascript - 用于仅显示项目的 Oracle APEX 格式掩码

Oracle linux 上的 Python 3.6.3 安装问题

sql - 如何在oracle中将2列合并(合并)为1列?

sql - 基于子查询显示列

oracle - OracleXE 的 APEX 可以访问同一服务器上的另一个 Oracle 数据库 (10g),还是仅限于 XE 数据库中的那些用户/表空间?

javascript - 如何查找已在同一浏览器的另一个选项卡中打开的 URL