这是我的桌子
ID angka1 angka2
1 80 20
2 10 20
3 10 20
4 0
我想对angka1进行垂直求和,所以id 4上的angka1的值是100,我已经尝试了下面的代码,但我想要一个简单的,因为我有另一个具有多个id的表(这个只是prototype),并且这个代码需要很长时间才能编写。
update halooo set angka1 = (
select sum(db1+db2+db3) from(
select
(select sum(angka1) from halooo where id=1)db1,
(select sum(angka1) from halooo where id=2)db2,
(select sum(angka1) from halooo where id=3)db3
)total
)
where id = 4
我试过这个,但是这个代码没有更新我的表,
update halooo
set
angka1=(
select sum(angka1) from(
select sum(angka1) from halo) a
)
where id=4
有人能指出我的错误在哪里吗?
最佳答案
试试这个
UPDATE halooo SET angka1 = (select SUM(angka1) from (SELECT * FROM halooo) as h WHERE id != 4) WHERE id = 4
如果我正确地理解了你的意思,这应该能解决你的问题。它将用angka1列中除id为4的行之外的所有行的总和更新id为4的行中的列angka1