Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL заявка за изчисляване на баланса по сметката

Вие основно изчислявате кръстосания продукт между tdebits и tcredits , т.е. за всеки ред в tdebits вие преглеждате всички редове в tcredits . Също така няма причина да се присъединявате към accounts (освен ако to_account_id и from_account_id не са външни ключове).

Трябва да извършите само едно преминаване на транзакции и просто трябва да знаете дали сумата е кредитна или дебитна.

SELECT SUM(CASE WHEN t.to_account_id = $1 THEN t.amount ELSE -t.amount END) AS amount
FROM transactions AS t
WHERE (t.to_account_id = $1 OR t.from_account_id = $1)
  AND t.succeed = true

Ако акаунт може да се прехвърли към себе си, добавете t.to_account_id <> t.from_account_id .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql разлика между две времеви марки в дни?

  2. mysql грешка 'TYPE=MyISAM'

  3. Laravel:Как да съхранявам данни във формат json в база данни?

  4. Объркано SQL изключение за JDBC

  5. Как да експортирате низ Base64 във файл, от страна на сървъра, без да го записвате в уеб сървър, директно от PHP?