вычесть результат двух подзапросов - PullRequest
0 голосов
/ 09 октября 2019

В моей базе данных есть 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

Работает ли это, когда у меня есть записи в обеих таблицах, поэтому яя делаю это неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...