sql 乘法未正确显示总数
sql multiplication don't show properly total
脚本中有奇怪的乘法。
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时,折扣总是不正确。
我不确定我必须做什么才能让它一直有效。
问题是带有折扣列的这个 table 是从 excel 文件导入到 sql 服务器的。
由于某种原因,折扣列不是十进制。
所有列都包含 0.0015、0.010 等数字...
当我将 Discount 的列数据类型更改为 decimal(10.4) 时,一切都开始正常工作。
但是问题还是来了,为什么大于 100 的数字有效而小于 100 的数字无效?
脚本中有奇怪的乘法。
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时,折扣总是不正确。
我不确定我必须做什么才能让它一直有效。
问题是带有折扣列的这个 table 是从 excel 文件导入到 sql 服务器的。
由于某种原因,折扣列不是十进制。
所有列都包含 0.0015、0.010 等数字...
当我将 Discount 的列数据类型更改为 decimal(10.4) 时,一切都开始正常工作。
但是问题还是来了,为什么大于 100 的数字有效而小于 100 的数字无效?