【问题标题】:Summing two columns then subtracting the sums将两列相加,然后减去总和
【发布时间】:2018-10-21 06:44:51
【问题描述】:

这是我的桌子。

pk |  transactionID
   |  description
   |  transactionDate
   |  transactionAmount
   |  accountRecieve
   |  accountSend

这些是我的专栏。我需要通过查询找到给定 accountNumber 的余额。为此,我必须在 accountSend = 127 处求和 transactionAmount,然后在 accountRecieve = 127 处求和 transactionAmount,然后从第二个总和中减去第一个总和并将其显示在一个结果中。

我可以解释它,但我不知道如何在 SQL 中执行它。任何人都可以请帮忙。

【问题讨论】:

  • Access 的正确标签是ms-access,以供将来参考

标签: sql database ms-access sum


【解决方案1】:

一个选项使用条件聚合:

SELECT
    SUM(IIF(accountReceive = 127, transactionAmount, 0)) -
    SUM(IIF(accountSend = 127, transactionAMount, 0)) AS diff
FROM yourTable;

我们的想法是只对整个表进行一次传递,使用两个标准对交易金额求和。

【讨论】:

  • 访问不支持CASE
  • @RhysSwansbra 我一定错过了访问标签。答案已更新。
【解决方案2】:

你也可以使用switch来表达:

SELECT SUM(SWITCH(accountReceive = 127, transactionAmount
                  accountSend = 127, - transactionAMount, 0,
                  1=1, 0
                 )
          ) AS diff
FROM yourTable;

这仅使用了一个SUM(),更类似于在其他数据库中使用CASE

【讨论】:

    猜你喜欢
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多