获取 4 个不同的总和结果 table

Get Total SUM Result of 4 differents table

我有 4 个 table 具有相同的列(id & banka_id & miktar)。

2 table 的收入(drink_earneat_earn)和

2 table 秒支出 (drink_spending, eat_spending )

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

我的问题。

如何一次性计算所有行?

drink_earn : table SUM(miktar) = 50$

eat_earn : table SUM(miktar) = 50$


drink_spending : table SUM(miktar) = 15$

eat_spending : table SUM(miktar) = 5$


收入:drink_earn + eat_earn = 100$

消费:drink_spending + eat_spending 20$

总计:收入 - 支出 = 80 美元

最后 GROUP BY banka_id

能否请您编写代码示例。问候。

使用 UNION ALL 将所有 table 合并为一个:

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

但是,如果您将所有数据都放在一个 table 中,再加上一个额外的类型列,那就更好了。