考虑下表:
ID nonUniqueID value total
--------------------------
1 12345 5 x
2 12345 10 x
3 789 20 x
4 789 5 x
我需要进行类似这样的查询(psuedo SQL),这将在Access 2007中运行:
UPDATE table
SET total = SUM(value)
WHERE nonUniqueID IS SAME;
结果应如下:
ID nonUniqueID value total
--------------------------
1 12345 5 15
2 12345 10 15
3 789 20 25
4 789 5 25
我尝试过小组,但是我得到了奇怪的结果,坦率地说,我无法解释。有谁知道我怎么能做到这样的事情?
答案 0 :(得分:3)
不确定这是否适用于Access,但请尝试一下:
update table t1
inner join (
select nonUniqueID, sum(value) as SumValue
from table
group by nonUniqueID
) t2 on t1.nonUniqueID = t2.nonUniqueID
set t1.total = t2.SumValue
更新:基于this question,它看起来不起作用。但试一试!如果没有,您可以使用该问题中建议的方法。
答案 1 :(得分:2)
另一种可能的选择:
update t
set total = (select SUM(value) from table where nonUniqueID = t.nonUniqueID)
from table t