有两个单独的表,有多个条目(行),我们需要将它们相加(总和)以形成一个值。
下面的查询在返回时给出了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)
答案 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