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

下面的查询为我提供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)

最佳答案

我不知道您的数据库是什么样子,因此未经测试,但是类似的东西应该可以工作:

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

08-03 20:25