SQL组合不同表中总计的列

SQL组合不同表中总计的列,sql,database,join,group-by,sum,Sql,Database,Join,Group By,Sum,表1(身份证、州) 表2(ID、成本) *唯一标识符=ID 我们所拥有的 Select ID, State, Cost From Table 1 A Left Join Table 2 B On b.ID = a.ID ID State Cost A1 WA 100 B1 OR 175 C1 NV 115 A1 TX 75 B1 OR 125 我们想要什么 ID Total A1 175 B1 300 C1 115 我希望合

表1(身份证、州) 表2(ID、成本) *唯一标识符=ID

我们所拥有的

Select ID, State, Cost
From Table 1 A
Left Join Table 2 B On b.ID = a.ID

ID  State   Cost
A1  WA      100
B1  OR      175
C1  NV      115
A1  TX      75
B1  OR  125
我们想要什么

ID  Total
A1  175
B1  300
C1  115
我希望合并来自单独表的列


因此,我们试图做的是计算任何特定ID的任何和所有状态的总计。正如您可以看到的,状态和成本列来自不同的表。据我所知,这不仅仅是一个简单的求和查询,它需要某种嵌套,但我不确定如何。。。表可以在ID上联接。对于此数据集,您可以简单地聚合
表2
,因为它包含您需要的两列(即
ID
成本

如果要排除
表1中不存在的
id

select id, sum(cost) total 
from table2 t2
where exists (select 1 from table1 t1 where t1.id = t2.id)
group by id

你说了“我们”想要什么,但你(复数?)在问什么?你试过什么?为什么一个“简单的”
SUM
不起作用,而这看起来正是有效的。似曾相识。请看:另外,(哎呀,忘了提)您标记了两个非常不同的RDBMS;MySQL和SQL Server。您真正使用的是什么RDBMS。我可以删除冲突的标记,请返回正确的标记。嵌套的“选择1”部分中的“1”代表什么?@shade206:它是
存在
条件的子查询。由于我们只想知道是否存在满足条件的行,因此子查询的结果将被丢弃,因此
选择1
select id, sum(cost) total 
from table2 t2
where exists (select 1 from table1 t1 where t1.id = t2.id)
group by id