我有以下表格;
表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 :(得分: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