Oracle Procedure not a group by function 错误 00979

Oracle Procedure not a group by function error 00979

我已经将此程序写给来自员工 table 的 select 员工以及相应的采购销售总量总和 table。我的程序创建没有任何错误,但该块不工作

将程序中的查询更改为

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.

祝你好运。