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

Query SQL per il calcolo del saldo del conto

In pratica stai calcolando il prodotto incrociato tra un tdebits e tcredits , ovvero per ogni riga in tdebits stai iterando su tutte le righe in tcredits . Inoltre, non c'è motivo per entrare in accounts (a meno che to_account_id e from_account_id non sono chiavi esterne).

Devi solo fare un passaggio sulle transazioni e devi solo sapere se l'importo è un credito o un debito.

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

Se un account può essere trasferito su se stesso, aggiungi un t.to_account_id <> t.from_account_id .