获取 4 个不同的总和结果 table
Get Total SUM Result of 4 differents table
我有 4 个 table 具有相同的列(id
& banka_id
& miktar
)。
2 table 的收入(drink_earn
、eat_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 中,再加上一个额外的类型列,那就更好了。
我有 4 个 table 具有相同的列(id
& banka_id
& miktar
)。
2 table 的收入(drink_earn
、eat_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 中,再加上一个额外的类型列,那就更好了。