首页 > 解决方案 > SQL 中的列总和

问题描述

我的表中有 2 列,Debit并且Credit. 我在做Debit - Credit

如果总和 Debit - Credit>= 0,则在借方中添加值,否则在贷方中添加值。

现在如何在特定列中添加值?

我正在使用这个查询

SELECT
    ActName,
    CASE WHEN SUM(DebitAmount - CreditAmount) >= 0 THEN 'DebitAmount'
         WHEN SUM(DebitAmount - CreditAmount) <= 0 THEN 'CreditAmount' END
FROM 
    TblAWSLocalTrans
GROUP BY
    ActName
ORDER BY
    ...

标签: sql

解决方案


您的语法略有偏差。如果我理解正确,您希望汇总账户的贷方/借方,然后在适当的情况下报告贷方或借方。当账户有贷方时,借方应显示 0,反之亦然,账户有借方。

SELECT
    ActName,
    CASE WHEN SUM(CreditAmount - DebitAmount) >= 0
         THEN SUM(CreditAmount - DebitAmount)
         ELSE 0 END AS TotalCreditAmount,
    CASE WHEN SUM(DebitAmount - CreditAmount) > 0
         THEN SUM(DebitAmount - CreditAmount)
         ELSE 0 END AS TotalDebitAmount
FROM TblAWSLocalTrans
GROUP BY ActName
ORDER BY ActName;

演示


推荐阅读