ORACLE SQL Group无法正常运行

时间:2013-09-26 04:30:23

标签: sql oracle

我收到了错误

Warning: oci_execute() [function.oci-execute]: ORA-00979: not a GROUP BY expression in

我的SQL语法:

SELECT
M.MODEL_NO,
M.MODEL_NAME,
P.FORM_NO,
P.MODEL_NO,

TO_CHAR(TO_DATE(P.DATE_ADDED,'YYYY-MM-DD'),'MONTH'),
Q.FORM_NO,
Q.STATUS_QTY,
SUM(Q.QTY) OVER (PARTITION BY P.FORM_NO ORDER BY P.FORM_NO
RANGE UNBOUNDED PRECEDING) QTY

FROM
SEIAPPS_MODEL M, SEIAPPS_PRODUCTION_STATUS P, SEIAPPS_QTY Q

WHERE
P.FORM_NO = Q.FORM_NO AND P.MODEL_NO = M.MODEL_NO AND M.MODEL_NO = '$model_no' AND P.DATE_ADDED LIKE '$years-09%' AND Q.STATUS_QTY = 'OK' GROUP BY M.MODEL_NAME

我收到此错误是因为我添加了GROUP BY M.MODEL_NAME。我需要通过MODEL_NAME对其进行分组。请帮忙。

由于

1 个答案:

答案 0 :(得分:0)

在sql server中,您的查询会按相关错误生成一个组,因为并非所有非聚合列都出现在group by子句中。

因此,我希望你的任何一个问题都会消失:

a)将其他非聚合列添加到group by子句中,或 b)重构您的逻辑以构建(1)仅具有model_name的查询和聚合数据,然后将其连接到(2)提供结果集中所需的所有其他数据的查询。