Oracle错误:不是按功能分组

时间:2015-12-06 10:45:31

标签: sql oracle

    Select EVENTPLAN.PLANNO, EVENTPLANLINE.LINENO, RESOURCETBL.RESNAME,
    COUNT(EVENTPLANLINE.NUMBERFLD) AS NUMBEROFRESOURCES,
    LOCATION.LOCNAME, EVENTPLANLINE.TIMESTART, EVENTPLANLINE.TIMEEND
    FROM  EVENTPLAN, RESOURCETBL, EVENTPLANLINE, LOCATION, FACILITY
    WHERE EVENTPLAN.PLANNO = EVENTPLANLINE.PLANNO
    AND   EVENTPLANLINE.RESNO = RESOURCETBL.RESNO
    AND   EVENTPLANLINE.LOCNO = LOCATION.LOCNO
    AND   FACILITY.FACNO = LOCATION.FACNO
    AND   FACILITY.FACNAME = 'Basketball arena'
    AND   EVENTPLAN.ACTIVITY = 'Operation'
    AND   EVENTPLAN.WORKDATE BETWEEN '1-OCT-13' AND '31-DEC-13'
    GROUP BY EVENTPLAN.PLANNO, EVENTPLANLINE.LINENO,                           
    RESOURCETBL.RESNAME,EVENTPLANLINE.NUMBERFLD;

运行此查询时出现错误:不是按功能分组。有人可以告诉我为什么会收到此错误?我在GROUP BY函数中添加了所有字段。

1 个答案:

答案 0 :(得分:0)

使用聚合函数时,所有标量字段必须位于GROUP BY函数中。

你错过了这些:

LOCATION.LOCNAME, EVENTPLANLINE.TIMESTART, EVENTPLANLINE.TIMEEND

因此,正确的查询将是:

SELECT
    EVENTPLAN.PLANNO, EVENTPLANLINE.LINENO, RESOURCETBL.RESNAME,
    COUNT(EVENTPLANLINE.NUMBERFLD) AS NUMBEROFRESOURCES,
    LOCATION.LOCNAME, EVENTPLANLINE.TIMESTART, EVENTPLANLINE.TIMEEND
FROM  EVENTPLAN, RESOURCETBL, EVENTPLANLINE, LOCATION, FACILITY
WHERE EVENTPLAN.PLANNO = EVENTPLANLINE.PLANNO
AND   EVENTPLANLINE.RESNO = RESOURCETBL.RESNO
AND   EVENTPLANLINE.LOCNO = LOCATION.LOCNO
AND   FACILITY.FACNO = LOCATION.FACNO
AND   FACILITY.FACNAME = 'Basketball arena'
AND   EVENTPLAN.ACTIVITY = 'Operation'
AND   EVENTPLAN.WORKDATE BETWEEN '1-OCT-13' AND '31-DEC-13'
GROUP BY EVENTPLAN.PLANNO, EVENTPLANLINE.LINENO, RESOURCETBL.RESNAME,
LOCATION.LOCNAME, EVENTPLANLINE.TIMESTART, EVENTPLANLINE.TIMEEND