这是数据库数据。
Name id Col1 Col2 Col3 Col4 Total Balance
Row1 1 6 1 A Z 7 7
Row2 2 2 3 B Z 8 1
Row3 3 9 5 B Y 7 2
Row4 4 16 8 C Y 7 3
只有第一行的总数是准确的。我想更新专栏" Total"和"平衡"条件从Row2到Row4。
这是总列总和的逻辑:
update Total = Col1+Col2 if Col3 = A and Col4 <>Z
OR
Total = Col1-Col2 if Col3 = B and Col4 <>Z
OR
Total = Col1*Col2 if Col3 = C and Col4 <>Z
并且还更新余额,余额=以前的余额+当前总额
答案 0 :(得分:1)
您的逻辑被重写为有效查询:
UPDATE tbl SET total =
IF(Col3 = 'A' and Col4 <> 'Z', Col1 + Col2,
IF(Col3 = 'B' and Col4 <> 'Z', Col1 - Col2,
IF(Col3 = 'C' and Col4 <> 'Z', Col1 * Col2, total))),
balance = balance + total;
你没有写下当没有满足这些条件时应该发生什么,所以在这种情况下我将总数保留在之前的值上,但它仍然被添加到余额中。