次のようなグローバル一時テーブルから更新を実行しています。
update some_table
set Amount = (##GlobalTable.InitialAmount) + (##GlobalTable.[Difference])
from ##GlobalTable
where Amount = ##GlobalTable.InitialAmount
Amount、InitialAmount、およびDifference列はすべてnumeric(21,2)です。
AmountとInitialAmountは常に正です。問題は、差が負の場合、結果の量が実際には負の差によって増加することです。減算を実行する必要がありますが、そうではありません。差が正の場合、正常に機能します。なぜこれが起こっているのか考えはありますか?
SQL Server2008R2を使用しているWindows7EnterpriseSP164ビットを使用しています