我有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语句的集合列表中。” 为什么这个错误?以及如何实现这一目标的任何想法。
答案 0 :(得分:0)
只能在select-statements中使用聚合函数。尝试:
UPDATE T1
SET T1C3 = (select SUM(T2C2)
FROM T1 INNER JOIN T2 ON T1C1 = T2C1
WHERE T1C2 = W1)