从两个不同的表中获取两列之和的sql查询
我有两张桌子。我想将表1中一列的所有值添加到表2特定列的所有值中。怎么做 比如说 表A从两个不同的表中获取两列之和的sql查询,sql,sql-server-2008,Sql,Sql Server 2008,我有两张桌子。我想将表1中一列的所有值添加到表2特定列的所有值中。怎么做 比如说 表A Id Name Salary 1 A 20000 2 B 30000 表B Id Name Salary 1 A 30000 2 B 40000 我希望结果为total salary=sum(表A的薪资)+sum(表B的薪资) 这里的结果应该是120000使用子查询执行此操作: select a.s + b.s from (select sum(s
Id Name Salary
1 A 20000
2 B 30000
表B
Id Name Salary
1 A 30000
2 B 40000
我希望结果为total salary=sum(表A的薪资)+sum(表B的薪资)
这里的结果应该是120000使用子查询执行此操作:
select a.s + b.s
from (select sum(salary) as s from a) cross join
(select sum(salary) as s from b);
或者,如果其中一个表可能为空,union all
会更好:
select sum(salary)
from (select id, name, salary from a union all
select id, name, salary from b
) ab;
首先使用联合。请尝试以下查询:
select sum(salary) from
(
select sum(Salary) as salary from tableA
union
select sum(Salary) as salary from tableB
)
如果两个表的工资总额相同,则报告的金额为正确金额的一半。