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

如何关联三张表查询计算每位客户的历史累计消费总金额

计算客户历史累计消费金额实现方案

涉及表结构

  • tblCustomer:客户基础表,核心字段为CustomerID(客户唯一标识)
  • tblOrder:订单交易表,核心字段为CustomerID(关联客户ID)、ProductID(关联商品ID)、Amount(商品购买数量)
  • tblProduct:商品信息表,核心字段为ProductID(商品唯一标识)、Price(商品单价)

实现逻辑

  1. 关联客户表与订单表,拉取所有客户的全部订单记录
  2. 关联商品表匹配对应商品的单价,单条订单的消费额计算规则为商品单价 * 购买数量
  3. 按客户ID分组,汇总所有订单消费额得到该客户的累计总消费

SQL实现代码

SELECT 
    c.CustomerID,
    SUM(p.Price * o.Amount) AS TotalSpent
FROM tblCustomer c
LEFT JOIN tblOrder o ON c.CustomerID = o.CustomerID
LEFT JOIN tblProduct p ON o.ProductID = p.ProductID
GROUP BY c.CustomerID;

可选调整说明

  • 若不需要保留无消费记录的客户,可将LEFT JOIN改为INNER JOIN,直接过滤掉没有订单的客户
  • 若需要将无消费记录客户的总消费显示为0而非NULL,可将求和逻辑替换为IFNULL(SUM(p.Price * o.Amount), 0) AS TotalSpent

输出示例

CustomerIDTotalSpent
120
2130

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:24:03