0

我有错误

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 对其进行分组。请帮忙。

谢谢

4

1 回答 1

0

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

因此,我希望您的问题在您以下任一情况下都会消失:

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

于 2013-09-26T04:44:32.617 回答