【问题标题】:Get Total SUM Result of 4 differents table [closed]获取4个不同表的总和结果[关闭]
【发布时间】:2016-05-03 11:35:15
【问题描述】:

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

2 桌收入(drink_earneat_earn)和

2桌消费(drink_spending, eat_spending

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

我的问题。

如何在一行中计算所有的?

drink_earn : 表 SUM(miktar) is = 50$

eat_earn : 表 SUM(miktar) is = 50$


drink_spending : 表 SUM(miktar) is = 15$

eat_spending : 表 SUM(miktar) is = 5$


收益:drink_earn + eat_earn = 100 美元

花费:drink_spending + eat_spending 20$

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

最后是 GROUP BY banka_id

你能写代码示例吗?问候。

【问题讨论】:

  • 您如何从您提供的样本数据中获得 50 美元?
  • 这只是一个例子。我只是在drink_earn 中显示我的表行id、banka_id、miktar,用SUM(miktar) 获得50 美元明白吗?
  • 你是对的@Strawberry 对不起。我修复它。我做了这个,它对我有用。是真的吗? ||| SELECT total.*, SUM(miktar) as miktartotal FROM ( SELECT * FROM drink_earn UNION ALL SELECT * FROM eat_earn UNION ALL SELECT * FROM eat_spending UNION ALL SELECT * FROM cekimler) AS total GROUP BY banka_id`|||
  • 您返回的是任意 ID

标签: php mysql mysqli sum calculator


【解决方案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

但是,如果您将所有数据都放在一个表中,并增加一列作为类型​​,那就更好了。

【讨论】:

  • 感谢@Paul Spiegel 的工作。但这也是有效的( SELECT total.*, Sum(miktar) AS miktartotal FROM (SELECT * FROM drink_earn UNION ALL SELECT * FROM eat_earn UNION ALL SELECT * FROM eat_spending UNION ALL SELECT * FROM drink_spending) AS total GROUP BY banka_id `)是是真的吗?
  • @IsmailAltunören - 不同之处在于您返回的是所有收入和支出的总和。但是你需要 sum(earnings) - sum(spendings) 就像你在问题中写的那样。
  • 刚刚问过@Paul Spiegel 是否属实。感谢您的帮助。
  • 我只想再问你一个问题@Paul 我怎么能包括支出+佣金?不是百分比。交叉支出和佣金,如 sum(spend+commission)
猜你喜欢
  • 2021-05-06
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多