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?

http://sqlfiddle.com/#!15/b5565/1

Respuestas a la pregunta(2)

Su respuesta a la pregunta