带内连接和SUM的SQL更新

时间:2014-09-24 07:09:20

标签: sql sql-update inner-join

我有2张桌子(比如T1和T2)。如下
T1 =>
- -------------------
C1 | C2 | C3 |
-
-------------------
  R1 | W1 | 0 |
  R2 | W1 | 0 |
  R3 | W2 | 0 |

T2 =>
- -------------
C1 | C2 |
-
-------------
 R1 | 5 |
 R1 | 7 |
 R2 | 4 |

我所拥有的是T1C2。从那里我想用C1作为连接密钥来更新T1C3和T2C2的总和,即在这种情况下T1C2 = W1,我希望T1C3分别更新为12,4和R1和R2值 我试过的查询是

UPDATE T1
SET T1C3 = SUM(T2C2)
FROM T1 INNER JOIN T2 ON T1C1 = T2C1
WHERE T1C2 = W1

这会给出错误 “聚合可能不会出现在UPDATE语句的集合列表中。” 为什么这个错误?以及如何实现这一目标的任何想法。

1 个答案:

答案 0 :(得分:0)

只能在select-statements中使用聚合函数。尝试:

UPDATE T1
SET T1C3 = (select SUM(T2C2)
FROM T1 INNER JOIN T2 ON T1C1 = T2C1
WHERE T1C2 = W1)