В моей базе данных есть 3 таблицы: счета, доходы, расходы. Я хотел бы получить сумму доходов и расходов с учетом конкретного счета, а затем получить разницу этих сумм. Это сводный пример структуры таблиц:
+--------------+
| accounts |
|--------------|
| id |
| name |
+--------------+
+--------------+
| income |
|--------------|
| id |
| amount |
| account_id |
+--------------+
+--------------+
| expense |
|--------------|
| id |
| amount |
| account_id |
+--------------+
И это мой текущий запрос:
select (t1.amount - t2.amount) as subtraction
from accounts a
inner join (
select account_id, COALESCE(sum(amount), 0) as amount
from income
where account_id = 4
) t1 on a.id = t1.account_id
inner join (
select account_id, COALESCE(sum(amount), 0) as amount
from expense
where account_id = 4
) t2 on a.id = t2.account_id
Работает ли это, когда у меня есть записи в обеих таблицах, поэтому яя делаю это неправильно?