将两列相加然后减去总和

时间:2018-10-21 06:44:52

标签: sql database ms-access sum

这是我的桌子。

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

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

我可以解释它,但是我不知道如何在SQL中执行它。谁能帮忙。

2 个答案:

答案 0 :(得分:0)

一个选项使用条件聚合:

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

想法是只对整个表进行一次传递,使用两个条件对交易金额求和。

答案 1 :(得分:0)

您也可以使用switch来表达这一点:

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

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