sql - 我正在尝试对每笔交易的 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。
解决方案
试一试(因为我们没有任何测试数据)
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
推荐阅读
- angular - Angular 应用程序的 Docker 映像构建失败
- java - Spring boot 使用 PropertySource 为每个环境加载配置
- flutter - Firestore 集合快照不会转换为 csv
- python - 如何从检索到的 JSON API 调用中删除或修改元素?
- java - 文本按钮显示为点而不是普通文本
- javascript - 无法向 MongoDB 添加项目
- css - 缩小换行文本块的宽度并与下一个同级垂直对齐
- php - PHP 尝试通过 SFTP 下载文件但在计算文件大小时收到 stat failed 错误
- javascript - 如何使用 JS 和 Laravel 将此贷款计算器中的值发送到其他页面
- c# - 如何在继承类程序的构造函数中传递参数?