首页 > 解决方案 > 我正在尝试对每笔交易的 AMT 求和,但仅当 GL 帐户不是 4 个帐户中的 1 个时才对 NETAMT 求和

问题描述

我需要在所有交易中将 AMOUNT 与 AMT 相加,但当它不是 4 个 GL 帐户中的 1 个时,我需要将 AMOUNT 与 NETAMT 和 AMT 相加。金额为总销售额,净额减去运费和税金。

我已经尝试过 CASE 和 IF 语句,但无法获得正确的输出/

CASE WHEN RL.GLACCOUNT_ID = @GL1 THEN SUM(RL.AMOUNT) AS AMT
     WHEN RL.GLACCOUNT_ID = @GL2 THEN SUM(RL.AMOUNT) AS AMT
     WHEN RL.GLACCOUNT_ID = @GL3 THEN SUM(RL.AMOUNT) AS AMT
     WHEN RL.GLACCOUNT_ID = @GL4 THEN SUM(RL.AMOUNT) AS AMT
ELSE SUM(RL.AMOUNT) AS AMT, SUM(RL.AMOUNT) AS NETAMT
END;

我可以让 AMT 相加,但无法获得 NETAMT。

标签: sql

解决方案


试一试(因为我们没有任何测试数据)

SUM(RL.AMOUNT) AS AMT,
SUM(CASE WHEN RL.GLACCOUNT_ID = @GL1 THEN 0
         WHEN RL.GLACCOUNT_ID = @GL2 THEN 0
         WHEN RL.GLACCOUNT_ID = @GL3 THEN 0
         WHEN RL.GLACCOUNT_ID = @GL4 THEN 0
         ELSE RL.AMOUNT END) AS NETAMT

推荐阅读