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

SQL查询问题:计算客户总余额并获取最后新增日期

解决获取客户最后钱包更新日期的问题

你的问题出在分组后直接选取date_added字段——当使用GROUP BY cw.cus_id时,数据库会返回该客户分组内任意一条记录的date_added值(MySQL非严格模式下的行为),这就是你得到最早日期的原因。要获取每个客户的最后新增日期,需要用聚合函数MAX()提取分组内的最大日期值。

修改后的查询如下:

SELECT 
    ROUND(SUM(credit_in) - SUM(credit_out), 2) AS balance,
    MAX(cw.date_added) AS last_updated_date
FROM customer_wallet cw
LEFT JOIN customers c ON c.id = cw.cus_id
GROUP BY cw.cus_id
ORDER BY last_updated_date DESC

关键修改点:

  • 用MAX(cw.date_added)替代直接选取cw.date_added,确保拿到每个客户钱包记录里的最新日期
  • 排序时使用别名last_updated_date,逻辑更清晰(也可以直接写MAX(cw.date_added),但别名更易读)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:35:29