SQL:如何对不同表中的两个值求和

SQL:如何对不同表中的两个值求和,sql,database,Sql,Database,我有许多表,其中的值需要汇总。它们也没有链接,但所有表的顺序都是相同的 基本上,我想用这两张表: CASH TABLE London 540 France 240 Belgium 340 CHEQUE TABLE London 780 France 490 Belgium 230 要获得这样的输出以输入图形应用程序,请执行以下操作: London 1320 France 730 Belgium 570 "等等 “COALESCE函数基本上说是“返回第一个参数,除非它为nul

我有许多表,其中的值需要汇总。它们也没有链接,但所有表的顺序都是相同的

基本上,我想用这两张表:

CASH TABLE  
London  540
France  240
Belgium 340

CHEQUE TABLE
London  780
France  490
Belgium 230
要获得这样的输出以输入图形应用程序,请执行以下操作:

London  1320
France  730
Belgium 570
"等等


“COALESCE函数基本上说是“返回第一个参数,除非它为null,否则在这种情况下返回第二个参数”——这在这些场景中非常方便。”

对于当前的结构,您还可以尝试以下操作:

select cash.Country, cash.Value, cheque.Value, cash.Value + cheque.Value as [Total]
from Cash
join Cheque
on cash.Country = cheque.Country
我想我更喜欢两个表之间的联合,以及上面提到的国家名称的分组

但我也建议您将表格正常化。理想情况下,您应该有一个带有Id和名称的国家/地区表,以及一个带有以下内容的付款表:
CountryId(FK到国家)、总计、键入(现金/支票)

您也可以在sql server中尝试此操作

select a.city,a.total + b.total as mytotal from [dbo].[cash] a join [dbo].[cheque] b on a.city=b.city 

或者尝试使用sum、union

select sum(total)  as mytotal,city
from
(
    select * from cash union
    select * from cheque
) as vij
group by city 

提示
UNION
groupby
SUM
将非常有用。“伦敦”是表中的一个条目,而不是列。这样,即使其中一个和为NULL,整个“结果”也将为NULL,因此这是最简单的方法,但最不可信的方法,不幸的是…@TheCuBeMan,true,但是,使用凝聚函数可以避免这种情况
select a.city,a.total + b.total as mytotal from [dbo].[cash] a join [dbo].[cheque] b on a.city=b.city 
select sum(total)  as mytotal,city
from
(
    select * from cash union
    select * from cheque
) as vij
group by city