【问题标题】:Oracle Procedure not a group by function error 00979Oracle 过程不是按函数分组的错误 00979
【发布时间】:2017-11-22 23:04:42
【问题描述】:

我已经编写了这个程序来从员工表中选择员工以及相应的采购表销售总量。我的程序创建没有任何错误,但该块不工作

【问题讨论】:

  • 请在此处分享您的代码和错误,而不是图片链接

标签: oracle plsql procedure


【解决方案1】:

将过程中的查询更改为

SELECT e.NAME, SUM(p.QTY)
  INTO emp_name, total_qty
  FROM PURCHASES p
  INNER JOIN EMPLOYEES e
    ON e.EID = p.EID
  WHERE p.EID = empno
  GROUP BY e.NAME

基本上,使用WHERE 而不是HAVING。如果你真的很想使用HAVING,你可以使用

SELECT p.EID, e.NAME, SUM(p.QTY)
  INTO emp_name, total_qty
  FROM PURCHASES p
  INNER JOIN EMPLOYEES e
    ON e.EID = p.EID
  GROUP BY p.EID, e.NAME
  HAVING p.EID = empno

要使用HAVING,它引用的字段必须在结果中,因此必须在GROUP BY中。

祝你好运。

【讨论】:

    猜你喜欢
    • 2011-05-25
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多