mysql:添加2个不同表的Sum()

时间:2014-10-01 23:14:00

标签: mysql sum union

有两个单独的表,有多个条目(行),我们需要将它们相加(总和)以形成一个值。

下面的查询在返回时给出了2个不同的值,我希望将2加在一起形成1个值。任何和所有的帮助表示赞赏。

select sum(t1.netAmount) 
      from tbl_one t1 where userid = 4033 and date > '2014-09-01'
    Union All
    select sum(t2.netAmount) 
      from tbl_two t2 where userid = 4033 and date > '2014-09-01'

下面的表结构

tbl_one
userid   |   netAmount   |   date
---------------------------------
4033     |   20          | 2014-09-02 12:00:00
4033     |   -20         | 2014-09-02 12:01:00
4033     |   40          | 2014-09-02 12:02:00


tbl_two
userid   |   netAmount   |   date
---------------------------------
4033     |   05          | 2014-09-03 12:00:00
4033     |   -100        | 2014-09-03 12:01:00
4033     |   12          | 2014-09-03 12:02:00

在两个表中获得4033的真实总和将产生-43(40 + -83)

1 个答案:

答案 0 :(得分:1)

我不知道您的数据库是什么样的,所以这是未经测试的,但这样的事情应该有效:

SELECT SUM(netAmount) FROM (
  SELECT netAmount FROM tbl_one WHERE userid = 4033 AND `date` > "2014-09-01"
  UNION ALL
  SELECT netAmount FROM tbl_two WHERE userid = 4033 AND `date` > "2014-09-01"
) x