sql >> Database teknologi >  >> RDS >> Mysql

SQL-forespørgsel til beregning af kontosaldo

Du beregner grundlæggende krydsproduktet mellem en tdebits og tcredits , dvs. for hver række i tdebits du itererer over alle rækkerne i tcredits . Der er heller ingen grund til at tilslutte sig accounts (medmindre to_account_id og from_account_id er ikke fremmednøgler).

Du behøver kun at foretage én overførsel, og du skal blot vide, om beløbet er en kredit- eller debetbeløb.

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

Hvis en konto kan overføre til sig selv, skal du tilføje en t.to_account_id <> t.from_account_id .



  1. Filtrer efter dato og klokkeslæt MYSQL-formatering

  2. MySqlDataReader GetBytes buffer problem...

  3. Hvordan vælger man tilfældige rækker fra tabellen med et nøjagtigt antal rækker?

  4. QMYSQL driver indlæsningsfejl