2015-05-19 40 views
0

我有以下表格;
表A:從無關表格添加金額

id amount 
1 50 

表B:

id amount 
1 10 
2 20 

這三張表是不是無論如何也不能涉及,但我希望在每個表的量的總和,然後所有款項的所有表中的總和要做到這一點,我使用了下面的查詢。

SELECT sum(A.amount) AS a, SUM(B.amount) AS b, CONCAT(A.amount + B.amount + C.amount) as c FROM A, B 

這給出結果:

a b c 
100 30 80 

我正在尋找的結果是

a b c 
50 30 80 

請讓我知道我沒有做對。

+0

您已經錯過tablec的表格定義/數據,但我認爲它與'tablea'和'tableb'類似? –

+0

準確。它類似於兩個表A和B – Donkoh

+0

很酷。我的答案應該適用於這種情況 –

回答

1

您正在交叉連接,這意味着將每行對每一行進行匹配。你可能需要的是這樣的事情,這保證了每個派生表中的一行,這意味着一個交叉連接是不是要打破它,你不想要的方式:

select a.total, b.total, c.total, a.total + b.total + c.total 
    from 
    (select sum(amount) total 
     from tablea 
    ) a 
    join 
    (select sum(amount) total 
     from tableb 
    ) b 
    join 
    (select sum(amount) total 
     from tablec 
    ) c 

demo fiddle

+2

只是不要忘記每個總和字段之後的「total」。例如'金額總額(金額)' – MrSimpleMind

+0

@MrSimpleMind良好的捕獲。第一件事早上:( –