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

两表关联SUM值展示异常,子查询语法报错,求正确SQL语法

修正后的SQL语法及错误说明

核心错误分析

你的SQL存在两个关键语法/逻辑错误:

  1. 派生表未指定别名:子查询作为FROM子句的数据源时,必须给它指定一个别名,数据库才能识别它。
  2. 引用不存在的字段:外层查询试图引用fabricinventory.sqty和fabricinventory.rcvd,但子查询的结果里只包含issue字段,根本没有这两个字段——外层查询的数据源是子查询的输出,不是原始的fabricinventory表。

针对需求的修正方案

根据你可能的业务需求(计算fabricinventory的sqty/rcvd总和,同时关联requisition的issue总和),提供两种常用场景的修正SQL:

场景1:按buyer_id和file_id分组统计

如果需要按fabricinventory的buyer_id和file_id分组,分别计算每组的发货量、收货量及关联的出库量:

SELECT
    fi.buyer_id,
    fi.file_id,
    SUM(fi.sqty) AS shipped,
    SUM(fi.rcvd) AS received,
    SUM(r.issue) AS issue
FROM
    fabricinventory fi
INNER JOIN 
    requisition r ON fi.id = r.fab_id
GROUP BY
    fi.buyer_id,
    fi.file_id;

场景2:统计全局总览数据

如果不需要分组,直接计算所有关联记录的总发货量、总收货量及总出库量:

SELECT
    SUM(fi.sqty) AS shipped,
    SUM(fi.rcvd) AS received,
    SUM(r.issue) AS issue
FROM
    fabricinventory fi
INNER JOIN 
    requisition r ON fi.id = r.fab_id;

场景3:必须使用子查询的场景(比如先预计算出库量再关联)

如果你确实需要通过子查询先计算每个fab_id的出库总和,再关联计算发货/收货量:

SELECT
    SUM(fi.sqty) AS shipped,
    SUM(fi.rcvd) AS received,
    SUM(sub.issue) AS total_issue
FROM
    fabricinventory fi
INNER JOIN (
    SELECT
        fab_id,
        SUM(issue) AS issue
    FROM
        requisition
    GROUP BY
        fab_id
) sub ON fi.id = sub.fab_id
-- 若需要按buyer和file分组,取消下面这行注释
-- GROUP BY fi.buyer_id, fi.file_id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:20:46