You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL5.7对分组计算的剩余库存列求和时报组函数无效错误如何解决

错误原因

报错的核心原因是 MySQL不支持在同一查询层级嵌套使用聚合函数。
你当前的查询在按a.item_numer分组的同一层级中,试图在SUM()内部嵌套使用MAX()、SUM()两个聚合函数,而聚合函数的计算依赖分组后的结果集,同一层级的GROUP BY只能完成一次聚合计算,无法同时完成「按商品分组计算单个商品剩余库存」和「对所有商品剩余值求和」两个聚合逻辑,因此触发分组函数非法使用的报错。

解决方案

把原来可以正常执行的、按商品分组计算单个剩余库存的SQL作为内层子查询,在外层对查询出来的所有remaining值做求和即可,适配MySQL 5.7.34的正确SQL如下:

SELECT SUM(remaining) as total_remaining
FROM (
    SELECT
        MAX(`a`.`Start_Balance_Qty`) - SUM(IFNULL(`b`.`QTY`, 0)) as remaining
    FROM `items` `a`
    LEFT JOIN `details` `b` 
        ON `a`.`item_numer` = `b`.`PARTNO`
        AND `b`.`deliverystatusid` = '6'
    GROUP BY `a`.`item_numer`
) as goods_remaining

内容的提问来源于stack exchange,提问作者user17112781

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:36:03