日期:2014-05-18  浏览次数:20517 次

两表累加时的问题
table1
pid   num
A       1
B       2

table2
pid   num
A       5
A       6
B       7

我想将table2中的num加到table1中pid相同的对应的num中
使用如下语句

update   table1
set   table1.num   =table1.num   +   table2.num
from   table1,table2
where   table1.pid   =   table2.pid

但是我发觉对于table2中的相同的pid,累加的时候只能累加一条记录的num,或者是table2中的第一条,或者是第二条,不能2条都累加。

我不知道为什么会产生这种情况,各位有什么方法吗?

------解决方案--------------------
Update A
Set A.num = A.num + B.num
From
table1 A
Inner Join
(Select pid, SUM(num) As num From table2 Group By pid) B
On A.pid = B.pid