SQL к сумме только положительные числа - PullRequest
0 голосов
/ 24 апреля 2019

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

Я пытаюсь суммировать общее количество кредитов (отрицательное число) и общее количество кредитов (положительное число) для JE.Таким образом, у меня есть один столбец (AMOUNT), который имеет как положительные, так и отрицательные суммы.В моем поле TOTALCREDIT мне нужен код, чтобы сказать, что он находит и суммирует только положительные числа из столбца AMOUNT, а для поля TOTALCREDIT мне нужно найти и добавить только отрицательные числа из столбца AMOUNT.Я пробовал варианты следующего, но он всегда возвращает 0.

TOTALDEBIT

sum (case when AMOUNT >= 0 then AMOUNT else 0 end) as positive

TOTALCREDIT

sum (case when AMOUNT < 0 then AMOUNT else 0 end) as negative

Так что, если столбец AMOUNT имеет 25, -25,30, -30

  • Поле TOTALDEBIT будет суммировать до 55
  • Поле TOTALCREDIT будет суммироваться до -55

Так что мне нужен 1 строковый коддля каждого поля.

1 Ответ

0 голосов
/ 24 апреля 2019

Я бы присоединился к себе

Transaction_Table =

  • транзакция_id
  • customer_id
  • Сумма

Выберите

  • x.customer_id
  • СУММА (кред. Количество) в качестве TOTALCREDIT
  • СУММА (деб. Количество) в качестве TOTALDEBIT

FROM Transaction_Table x

LEFT JOIN Transaction_Table cred для x.transaction_id = cred.transaction_id и сумма <0 </p>

LEFT JOIN Transaction_Table deb для x.transaction_id = cred.transaction_id и сумма> = 0

Группировка по x.customer_id


Или, если вы просматриваете итоги по всей таблице, просто

Выберите

  • SUM (cred.Amount) как TOTALCREDIT
  • SUM (deb.Amount) AS TOTALDEBIT

FROM Transaction_Table x

ВЛЕВО ПРИСОЕДИНЯЙТЕСЬ к Transaction_Table cred на x.transaction_id = cred.transaction_idи сумма <0 </p>

LEFT JOIN Transaction_Table deb на x.transaction_id = cred.transaction_id aсумма> = 0

...