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

基于Accounts表汇总Account Details数据的SQL查询需求

数据库查询需求与解决方案

现有数据库表

1. Accounts表

包含Accountname、accountCode字段,数据如下:

AccountnameaccountCode
Client111
Client2111
Client3112

2. Account Details表

包含AccountCode、Debit、Credit字段,数据如下:

AccountCodeDebitCredit
115000
110200
1117000
1123000
1120400

查询需求

需要编写SQL语句,生成包含AccountName、TotalDebit、TotalCredit、CumulativeBalance字段的结果表,预期结果如下:

AccountNameTotalDebitTotalCreditCumulativeBalance
Client1500200300
Client270001000
Client3300400900

当前尝试的问题

当前编写的SQL仅能显示AccountCode,无法满足需求,代码如下:

select
    sum(Debit) as TotalDebit,
    sum(Credit) as TotalCredit,
    Account_Code as AC
from AccountDetails as A 
inner join Accounts as B ON A.AccountCode = B.AccountCode
where AccountCode like N'11%'
group by A.AccountCode

修正后的SQL语句

SELECT
    B.Accountname AS AccountName,
    SUM(A.Debit) AS TotalDebit,
    SUM(A.Credit) AS TotalCredit,
    SUM(SUM(A.Debit) - SUM(A.Credit)) OVER (ORDER BY B.AccountCode) AS CumulativeBalance
FROM AccountDetails AS A
INNER JOIN Accounts AS B ON A.AccountCode = B.AccountCode
WHERE A.AccountCode LIKE N'11%'
GROUP BY B.Accountname, B.AccountCode
ORDER BY B.AccountCode;

关键说明

  1. 需在SELECT中引入B.Accountname,并将其与B.AccountCode一同加入GROUP BY子句,确保分组维度包含账户名称
  2. 利用窗口函数SUM() OVER (ORDER BY B.AccountCode)实现累计余额计算:先算出单个账户的余额=总借方-总贷方,再按账户编码顺序累加得到累计值
  3. 保留WHERE条件,过滤出编码以'11'开头的目标账户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:25:22