Consulta SQL para calcular el saldo de la cuenta
Quiero calcular el saldo de la cuenta usando sql sin procesar sin lógica de aplicación adicional. El esquema de transacción incluye la cantidad, from_account_id y to_account_id
Mi consulta es
SELECT SUM(tdebit.amount) - SUM(tcredit.amount) as balance
FROM accounts as a
INNER JOIN transactions as tdebit ON a.id = tdebit.to_account_id
INNER JOIN transactions as tcredit ON a.id = tcredit.from_account_id
WHERE a.id = $1 AND tdebit.succeed = true AND tcredit.succeed = true
Y no funciona como esperaba: el resultado es incorrecto, pero si me uno a la transacción solo una vez que funciona correctamente, por ejemplo, solo la cantidad de débito está bien
SELECT SUM(tdebit.amount) as debit
FROM accounts as a
INNER JOIN transactions as tdebit ON a.id = tdebit.to_account_id
WHERE a.id = $1 AND tdebit.succeed = true
¿Qué me perdí en mi consulta de saldo?