我正在尝试从不同的表中选择总计的总和到一个查询中。由于某种原因,下面的这个查询曾经有效,但现在返回 NULL。如果我执行单个查询,它们会返回一个总和,但不会将它们加在一起。也许有人能看出我做错了什么?
SELECT
(
(SELECT SUM(a.Total) FROM table1 a) +
(SELECT SUM(c.Total) FROM table2 c) +
(SELECT SUM(eb.Total) FROM table3 eb) +
(SELECT SUM(h.Amount) FROM table4 h) +
(SELECT SUM(n.Total) FROM table5 n) +
(SELECT SUM(mbo.Total) FROM table6 mbo)
)
AS Overral_Amount_Total
最佳答案
你可以使用子查询:
SELECT SUM(sub.col) AS Overral_Amount_Total
FROM
(
SELECT SUM(Total) AS col FROM table1
UNION ALL
SELECT SUM(Total) FROM table2
UNION ALL
SELECT SUM(Total) FROM table3
UNION ALL
SELECT SUM(Amount) FROM table4
UNION ALL
SELECT SUM(Total) FROM table5
UNION ALL
SELECT SUM(Total) FROM table6
) AS sub;
重点是(您的一个表是空的/包含特定列中的所有 NULL
):
CREATE TABLE tab(col INT);
SELECT SUM(col)
FROM tab;
-- will return NULL
对于空表,它将返回 NULL
并且添加到 NULL
的任何内容都是 NULL
。
关于MySQL 多重选择不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33691520/