我有付款表字段
更新原因和金额和总计字段更改为负数
UPDATE payment
SET reason = 'refund'
WHERE uid =5 AND date = '2012-05-01' AND accid =2
更新单个查询是否可能?
我有付款表字段
更新原因和金额和总计字段更改为负数
UPDATE payment
SET reason = 'refund'
WHERE uid =5 AND date = '2012-05-01' AND accid =2
更新单个查询是否可能?
如果我理解正确,您还希望将金额列与上述语句一起设置为正值。
你可以使用这样的东西
UPDATE payment
SET reason = 'refund', amount = amount * -1, total = total * -1
WHERE uid =5 AND date = '2012-05-01' AND accid =2
ABS(amount)
如果您希望始终获得正整数,请使用。
SELECT ABS(5);
将输出 5
SELECT ABS(-5);
也会输出 5
当我寻找解决方案时,提供的建议破坏了我的结果:
SELECT @TotalAmount:=( SELECT FORMAT(SUM(Amount), 4) FROM MPPayment WHERE PaymentBatchID = 6 and CompanyID=3);
正确的结果:
格式化后:
SELECT @TotalAmount:=( SELECT FORMAT(SUM(Amount), 4) FROM MPPayment WHERE PaymentBatchID = 6 and CompanyID=3);
SELECT @TotalAmount * -1;
另一种解决方案是从零中减去您的数字:
SELECT @TotalAmount:=( SELECT SUM(Amount) FROM MPPayment WHERE PaymentBatchID = 6 and CompanyID=3);
select FORMAT((0 - @TotalAmount), 4 );
为了避免上述结果的损坏,我在操作结束时进行了格式化。结果很好:
也适用于乘以 -1:
SELECT @TotalAmount:=( SELECT SUM(Amount) FROM MPPayment WHERE PaymentBatchID = 6 and CompanyID=3);
select FORMAT(( @TotalAmount *-1), 4 );