Получить итоговую сумму результатов 4-х разных таблиц

У меня 4 таблицы с одинаковыми столбцами (id & banka_id & miktar).

2 таблицы заработка (drink_earn, eat_earn ) а также

2 таблицы расходов (drink_spending, eat_spending )

|id|banka_id|miktar|
---|--------|------|
|1 |2       |20    |
|2 |1       |20    |
|3 |1       |30    |

Мой вопрос.

Как я могу рассчитать все в одной строке?

drink_earn : таблица SUM (миктар) составляет = 50 $

eat_earn : таблица SUM (миктар) составляет = 50 $


drink_spending : таблица СУММ (миктар) составляет = 15 $

eat_spending : таблица СУММ (миктар) составляет = 5 $


доходы: drink_earn + eat_earn = 100 $

расходы: drink_spending + eat_spending 20 $

Итого: заработок — расходы = 80 $

и наконец GROUP BY banka_id

Можете ли вы написать пример кода. С уважением.

-1

Решение

Объедините все таблицы в одну с помощью UNION ALL:

select banka_id, sum(earn) - sum(spend) as total
from (
select banka_id, miktar as earn, 0 as spend
from drink_earn
union all
select banka_id, miktar as earn, 0 as spend
from eat_earn
union all
select banka_id, 0 as earn, miktar as spend
from drink_spending
union all
select banka_id, 0 as earn, miktar as spend
from eat_spending
) t
group by banka_id

Но было бы лучше, если бы у вас были все данные только в одной таблице с одним дополнительным столбцом для типа.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector