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

基于CustomerID分组的多条件Points求和:MS-Access SQL实现需求

嗨,这就给你写出符合需求的MS Access SQL语句,刚好能实现按客户ID分组,分别统计不同交易类型的积分总和👇

MS Access SQL 按客户分组统计不同交易类型积分总和

针对你提供的demo表结构,我们可以用**分组(GROUP BY)**搭配Access专属的IIF函数来实现需求——毕竟Access不支持SQL标准里的CASE WHEN,用IIF就能完美替代。

完整SQL代码

SELECT 
    CustomerID,
    -- 统计Transfer类型的积分总和
    SUM(IIF(Transaction = 'Transfer', Points, 0)) AS TotalTransfer,
    -- 统计Accrual类型的积分总和
    SUM(IIF(Transaction = 'Accrual', Points, 0)) AS TotalAccrual,
    -- 统计Usage类型的积分总和
    SUM(IIF(Transaction = 'Usage', Points, 0)) AS TotalUsage,
    -- 统计Expiry类型的积分总和
    SUM(IIF(Transaction = 'Expiry', Points, 0)) AS TotalExpiry
FROM demo
-- 按客户ID分组,确保每个客户只出一行统计结果
GROUP BY CustomerID
-- 按客户ID排序,结果更规整
ORDER BY CustomerID;

代码逻辑说明

  • GROUP BY CustomerID:核心分组逻辑,把同一个客户的所有交易记录聚合到一行
  • SUM(IIF(...)):IIF会判断当前交易是否匹配指定类型,匹配就取对应的Points值,不匹配就取0,再用SUM把这些值加起来,得到该类型的总积分
  • 别名(比如TotalTransfer)是为了让结果列更直观,你可以根据自己的习惯修改

预期输出结果

执行上面的SQL后,会得到这样的统计表格:

CustomerIDTotalTransferTotalAccrualTotalUsageTotalExpiry
1230459306328
205324750
319446700
5043500

如果之后需要新增或修改统计的交易类型,只需要复制一行SUM(IIF(...)),修改里面的交易类型值就行,非常灵活。

内容的提问来源于stack exchange,提问作者A.Zaben

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:39:42