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

如何统计Credit状态客户数量及对应订单金额总和?

修正后的SQL查询方案

问题核心

你的查询未正确限定Orders表的Status条件,导致累加了所有订单的金额。需要确保仅关联状态为Credit的订单,同时准确统计对应客户数量(按预期结果,应为统计有Credit订单的独立客户数,而非订单数)。

修正后的查询语句

方式1:关联后直接过滤状态

SELECT
    COUNT(DISTINCT o.`Customer Name`) AS NoOfCreditor,
    SUM(od.Amount) AS AmountTotal
FROM Orders o
JOIN OrderDetails od ON o.OrderID = od.OrderID
WHERE o.Status = 'Credit';

方式2:子查询预过滤Credit订单

SELECT
    COUNT(DISTINCT o.`Customer Name`) AS NoOfCreditor,
    SUM(od.Amount) AS AmountTotal
FROM OrderDetails od
JOIN (
    SELECT OrderID, `Customer Name`
    FROM Orders
    WHERE Status = 'Credit'
) o ON od.OrderID = o.OrderID;

关键说明

  • COUNT(DISTINCT o.Customer Name):确保同一客户即使有多笔Credit订单,也仅被统计一次,匹配你预期的NoOfCreditor=2。
  • WHERE o.Status = 'Credit'/子查询过滤:仅关联状态为Credit的订单,保证SUM(od.Amount)只计算这类订单的金额总和,得到预期的45.00。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:34:56