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

SQL实现:按两个日期分组并对多表连接后的借贷列求和

解决方案:按日期分组并聚合借贷方金额

没问题,我来帮你调整SQL语句,实现按DateDu和DateAu两个日期字段分组,并对多表连接后的Debit(借方)和Credit(贷方)分别求和的需求。

原查询分析

你提供的原SQL只是关联了AffectationAbonnement和DetailAbonnements两张表,返回了指定Abonnement_Id的单条记录的借贷方数据,但没有做分组聚合操作:

select DateDu, DateAu, Det.Debit, Det.Credit, Det.Debit - Det.Credit as 'Solde' 
from AffectationAbonnement Aff 
join DetailAbonnements Det on Aff.Abonnement_Id = Det.Abonnements_Id 
where Abonnement_Id= 8

修改后的分组聚合SQL

下面是调整后的语句,通过GROUP BY和聚合函数SUM()实现你的需求:

select 
    Aff.DateDu, 
    Aff.DateAu, 
    SUM(Det.Debit) as TotalDebit,
    SUM(Det.Credit) as TotalCredit,
    SUM(Det.Debit) - SUM(Det.Credit) as 'Solde'
from AffectationAbonnement Aff 
join DetailAbonnements Det on Aff.Abonnement_Id = Det.Abonnements_Id 
where Abonnement_Id = 8
group by Aff.DateDu, Aff.DateAu

关键说明

  • 分组逻辑:GROUP BY Aff.DateDu, Aff.DateAu确保相同DateDu和DateAu组合的记录会被归为一组
  • 聚合计算:SUM(Det.Debit)和SUM(Det.Credit)分别对每组内的借方、贷方金额求和,得到该日期组的总借贷额
  • 余额计算:SUM(Det.Debit) - SUM(Det.Credit)用分组后的总借方减去总贷方,得到该日期组的余额(Solde)
  • 处理空值(可选):如果Debit或Credit字段可能存在NULL值,可以用COALESCE函数避免求和结果为NULL,比如SUM(COALESCE(Det.Debit, 0))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:46:13