Oracle Procedure不是按功能分组错误00979

时间:2017-11-22 23:04:43

标签: oracle plsql procedure

我已经编写了这个程序来从员工表中选择员工以及按购买表销售的总数量的相应总和。创建我的过程没有任何错误,但块无法正常工作

enter image description here

enter image description here

1 个答案:

答案 0 :(得分: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

祝你好运。