PHP / MYSQL:从不同表中的2列获得总和

时间:2014-12-02 13:10:55

标签: php mysql mysqli

我需要从属于同一所有者的2家小公司获得总成本。

两家公司的成本表位于同一个数据库中。

我会用图片enter image description here

更好地解释它

我需要得到的是最终总数(如图所示)。

我可以做两个单独的查询,然后对变量求和,但我想知道是否有可能得到一个查询的总结果。

提前致谢

5 个答案:

答案 0 :(得分:1)

select  sum(total) from (
SELECT SUM(column_name)  as total FROM table_name1
union all
SELECT SUM(column_name) as total  FROM table_name2
) as alias

答案 1 :(得分:0)

SELECT
(SELECT SUM(neto_amount) FROM fincost1) + (SELECT SUM(neto_amount) FROM fincost2) 
FROM dual

答案 2 :(得分:0)

我可以理解为什么你有成本的并行表 - 因为它们在安全性和访问权限方面更简单。但是,从几乎所有其他角度来看(维护,查询,备份/恢复),最好有一个表格,其中一列表示"所有者"和/或"公司"。

您可以使用子查询执行所需操作。我更喜欢将它们放在from子句中:

select (amount1 + amount2) as neto_neto_amount
from (select sum(neto_amount) as amount1 from fin_costs_1) t1 cross join
     (select sum(neto_amount) as amount2 from fin_costs_2) t2 ;

答案 3 :(得分:0)

是的,使用UNIONS

SELECT sum(u.cost)
FROM (
   SELECT sum(neto_amount) cost
   FROM fin_costs1
   UNION
   SELECT sum(neto_amount) cost
   FROM fin_costs2
) u

答案 4 :(得分:0)

我确定还有其他一些方法可以做到这一点,但我这样做是这样的:

我在两个不同的sql SUM函数中得到两个表的和,如:

SELECT SUM(column_name) FROM table_name1;


SELECT SUM(column_name) FROM table_name2;

并简单地将$sum1 + $sum2 = $total;

添加到一起

echo $totalsum;

完成