Я думаю, что вы должны написать этот запрос как JOIN
вместо:
SELECT d.account_no, COALESCE(d.deposits, 0) - COALESCE(w.withdrawals, 0) AS balance
FROM (SELECT account_no, SUM(deposit_amount) AS deposits
FROM deposits
GROUP BY account_no) d
LEFT JOIN (SELECT account_no, SUM(withdraw_amount) AS withdrawals
FROM withdraws
GROUP BY account_no) w ON w.account_no = d.account_no
Обратите внимание, что я предполагаю, что на каждом счете есть хотя бы один депозит (для открытия счета). Если нет, то вместо этого вам нужно будет эмулировать FULL JOIN (см. в этом вопросе , чтобы узнать, как это сделать).