Я думаю, вам нужно объединить таблицы пополнения и снятия по отдельности:
CREATE VIEW d_view AS
SELECT account_no, SUM(deposit_amount) AS deposit_sum
FROM deposits
GROUP BY account_no
CREATE VIEW w_view AS
SELECT account_no, SUM(withdraw_amount) AS withdraw_sum
FROM withdraws
GROUP BY account_no
CREATE VIEW main_balance_new AS
SELECT
d.account_no,
d.deposit_sum - COALESCE(w.withdraw_sum, 0) AS balance
FROM d_view d
LEFT JOIN w_view w
ON d.account_no = w.account_no;
Этот ответ оставляет открытой возможность того, что данная учетная запись появляется только в депозите, но не при выводе, таблица.
Edit:
Если вам нужно представление, используйте отдельные представления, чтобы обойти проблему подзапроса.