这是我的桌子

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

09-06 07:11