0
我想如何在SQLite中创建条件SUM。我创建了这个例子:SQLite有条件SUM
表之前SQL操作
ID1 ID2 Value TOTAL
-------------------------------
1 None
1 7.00 None
1 1.00 None
1 1.00 None
1 3.00 None
1 2.00 None
2 None
2 5.00 None
2 1.00 None
3 None
3 7.00 None
3 1.00 None
3 1.00 None
3 3.00 None
上表是不作任何修改的数据呢。如果ID1 = ID2,我想对该值进行求和,并将结果发布到“TOTAL”列中。
表SQL动作后
ID1 ID2 Value TOTAL
-------------------------------
1 14.00
1 7.00 None
1 1.00 None
1 1.00 None
1 3.00 None
1 2.00 None
2 6.00
2 5.00 None
2 1.00 None
3 12.00
3 7.00 None
3 1.00 None
3 1.00 None
3 3.00 None
我已经试过这没有成功:
curOperations.execute('UPDATE TABLE1 SET TOTAL =
(SELECT SUM(CASE WHEN ID1 = ID2 THEN Value ELSE 0 END) as Value FROM TABLE1)')
编辑
所以,我已经找到了一种方法以获得SUM颇为简单Y:
SELECT ID2, SUM(Value) FROM Table GROUP BY ID2
随着我获得该表:
ID2 SUM(Value)
------------------------
1 14.00
2 6.00
3 12.00
我现在要做的唯一事情是将这些值传递到“主”表
任何想法?
但只有一些行应该被更新。 –
@CL。此查询只更新具有非空ID1的行,并给出在* TABLE AFTER SQL ACTION *显示中显示的值。 –
UPDATE修改所有行,甚至那些子查询返回NULL的地方。 –