sql >> Databáze >  >> RDS >> Mysql

SQL dotaz pro výpočet zůstatku účtu

V podstatě počítáte křížový produkt mezi tdebits a tcredits , tj. pro každý řádek v tdebits iterujete přes všechny řádky v tcredits . Také není důvod se připojovat k accounts (pokud není to_account_id a from_account_id nejsou cizí klíče).

Stačí provést jednu transakci a stačí vědět, zda se jedná o kreditní nebo debetní částku.

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

Pokud se účet může převést na sebe, přidejte t.to_account_id <> t.from_account_id .



  1. Jak získat row_number v MySQL

  2. Definice sestavy SSRS je novější než Server

  3. MySQL, předání AUTO_INCREMENT do jiné tabulky

  4. Připojování dat do databázového pole MySQL, které již obsahuje data