Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie SQL do obliczenia salda konta

Zasadniczo obliczasz iloczyn krzyżowy między tdebits i tcredits , czyli dla każdego wiersza w tdebits iterujesz po wszystkich wierszach w tcredits . Nie ma też powodu, aby dołączać do accounts (chyba że to_account_id i from_account_id nie są kluczami obcymi).

Wystarczy wykonać tylko jedną transakcję pominięcia i wystarczy wiedzieć, czy kwota jest kredytem czy debetem.

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

Jeśli konto może przenieść się na siebie, dodaj 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. Wielojęzyczne pola w tabelach DB

  2. Grupuj według Union mysql select query

  3. Używanie pdo w php z procedurą składowaną

  4. Jak przechowywać plik java.util.Date w polu znacznika czasu MySQL w strefie czasowej UTC/GMT?

  5. pomiń kopiowanie do tabeli tmp na dysku mysql