支払いテーブルのフィールドがあります
更新理由と金額と合計フィールドがマイナスに変化
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 );