2014-10-01 82 views
0

有两个单独的表格,其中有多个条目(行),我们需要将它们相加(合计)在一起形成一个值。mysql:在两个不同表格的sum()上的加法

以下查询为我提供了2个不同的返回值,我只是想将2加在一起形成1个值。任何和所有的帮助表示赞赏。下面

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 

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' 

表结构获得跨越两个表的真正总和4033将产生-43(40 + -83)

回答

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 
+0

这会产生#1248 - 每个派生表必须有其自己的其他秒。我将在原始问题中添加更多关于表结构的细节。 – timw07 2014-10-01 23:34:25

+0

你还记得那个x吗? – miken32 2014-10-01 23:39:09

+0

我没有!这是什么工作... – timw07 2014-10-01 23:43:02