【发布时间】:2018-12-10 17:43:37
【问题描述】:
我的数据库中有几张表。我们称它们为 table1、table2、table3。
它们都有一个名为value 的列。
我需要创建一个返回单个数字的查询,其中该数字是所有表中所有value 列的总和...
我尝试了以下方法:
SELECT (SELECT SUM(value) FROM table1) + (SELECT SUM(value) FROM table2) + (SELECT SUM(value) FROM table3) as total_sum
但是当至少一个内部SUM 是NULL 时,整个总值(这里是total_sum)是NULL,所以这不是很值得信赖。
当某个内部SUM查询中没有值时,我需要它返回0,所以它不会影响SUM的其余部分。
为了更清楚,假设我有以下 2 个表:
表 1:
ID | NAME | VALUE
1 Name1 1000
2 Name2 2000
3 Name3 3000
表 2:
ID | NAME | VALUE
1 Name1 1500
2 Name2 2500
3 Name3 3500
最终,我需要的查询将返回一个值 - 13500,这是此处所有表的VALUE 列下所有值的总和。
所有其他列对于所需的查询没有意义,在这种情况下我什至不太关心性能。
【问题讨论】:
-
我可能只是使用
union all将所有这些值粘在一起,然后同时对所有值求和。
标签: sql sql-server select sum