脚本中有一个奇怪的乘法。
SUM(CAST(PurchLine.[Amount Including VAT] AS decimal(10,2)))
OVER(PARTITION BY PurchLine.[Document No_])AS "TotalAmount"
从上方查找总金额。
TotalAmount * TotalAmount * Discount AS PaymentAmount
从以上查找折扣和最终付款金额。
例如我有24.80 *(24.80 * 0.015)= 24.42
取而代之的是我得到24.30。
同样对于折扣24.80 * 0.015 = 49.60,这又是不正确的。正确的结果应该是0.372
但是奇怪的是,这仅在TotalAmount小于3位数字时才起作用。
当总金额低于100时,折扣总是不正确。
我不确定该怎么做,所以它会一直工作。
答案 0 :(得分:0)
问题是带有“折扣”列的此表已从excel文件导入到sql服务器中。
由于某种原因,“折扣”列不是十进制。
所有列均包含0.0015、0.010等数字...
当我将“折扣”的列数据类型更改为小数(10.4)时,一切开始正常运行。
但这仍然是一个问题,为什么对大于100且小于100的数字不起作用?