Суммирование двух столбцов с последующим вычитанием сумм - PullRequest
0 голосов
/ 21 октября 2018

Вот моя таблица.

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

Это мои столбцы.Мне нужно найти баланс с учетом accountNumber через запрос.Чтобы сделать это, мне нужно СУММ транзакцииAmount, где accountSend = 127, а затем СУММ транзакцииAmount, где accountRecieve = 127, а затем вычесть первую сумму из второй суммы и показать ее в одном результате.

Я могу объяснить это, но у меня естьпонятия не имею, как выполнить это в SQL.Может кто-нибудь, пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Вы также можете выразить это, используя switch:

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

Это использует только один SUM() и более аналогично использованию CASE в других базах данных.

0 голосов
/ 21 октября 2018

В одном варианте используется условное агрегирование:

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

Идея состоит в том, чтобы просто сделать один проход по всей таблице, суммируя сумму транзакции с использованием двух критериев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...