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

如何编写SELECT查询获取两类交易总和、借贷合计及差值

解决交易类型统计的SQL查询方案

嘿,我来帮你搞定这个交易统计的需求!根据你的描述,我们可以用两种不同的SQL写法来满足要求,下面分别说明:

方式一:一次性获取所有统计结果(推荐)

这个查询会直接返回贷方总额、借方总额,以及二者的差值,同时也明确给出了两种交易类型的总和:

SELECT
    -- 统计贷方(类型0)的总额
    SUM(CASE WHEN transaction_type = 0 THEN amount ELSE 0 END) AS sum_credit,
    -- 统计借方(类型1)的总额
    SUM(CASE WHEN transaction_type = 1 THEN amount ELSE 0 END) AS sum_debit,
    -- 计算贷方与借方的差值(贷方减借方,如需反向可调整符号)
    SUM(CASE WHEN transaction_type = 0 THEN amount ELSE -amount END) AS balance_difference,
    -- 单独列出贷方总和(和sum_credit一致,可根据需求选择保留)
    SUM(CASE WHEN transaction_type = 0 THEN amount ELSE 0 END) AS credit_total,
    -- 单独列出借方总和(和sum_debit一致,可根据需求选择保留)
    SUM(CASE WHEN transaction_type = 1 THEN amount ELSE 0 END) AS debit_total
FROM transactions;

说明:

  • 这里假设你的交易表名为transactions,金额字段是amount,交易类型字段是transaction_type,如果你的字段/表名不同,直接替换即可。
  • balance_difference的计算逻辑是贷方总额 - 借方总额,如果需要借方减贷方,把ELSE -amount改成ELSE amount,同时把THEN amount改成THEN -amount就行。

方式二:按交易类型分组统计总和

如果你需要单独查看每种交易类型的总和(一行显示贷方,一行显示借方),可以用这个分组查询:

SELECT
    -- 把数字类型转换成易读的分类名称
    CASE transaction_type
        WHEN 0 THEN 'Credit'
        WHEN 1 THEN 'Debit'
        ELSE 'Unknown'
    END AS transaction_category,
    -- 计算该类型的交易总额
    SUM(amount) AS total_amount
FROM transactions
GROUP BY transaction_type;

这个查询的结果会是两行(如果只有0和1两种类型),清晰展示每种交易类型的总金额。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:29:50