我想使用以下查询获取总金额
SELECT SUM(Quantity * UnitPrice * (Discount/100)) FROM Stock_Purchase_Details
我的桌子结构
Proid | unitprice | discountrate(inpercentage) | proqty 1 | 10.00 | 10.00 | 10 2 | 10.00 | 10.00 | 10
我希望总金额为20.00,但我使用的查询返回此结果20.00000000
- 为什么?
注释描述得很好,结果是正确的,你可以做什么来获得你需要的格式的结果(只需将其转换为所需的数据类型:) CONVERT(decimal(5, 2), calculation)
.
为什么,我觉得,没有得到回答,这是你的实际问题.您将一个decimal(5, 2)
带有integer
.SQL服务器隐式注塑除数(100
)股息(的数据类型decimal(5,2)
),因为该数据类型必须匹配,并decimal
采用优先级超过一个integer
.除法的输出也是a decimal
,但计算精度和比例.输出比例为max(6, scale of dividend + precision of divisor + 1)
= max(6, 2 + 5 + 1)
.所以你最终得到的8
是8个零.
事实上,最终的结果是DECIMAL(13, 8)
,完全是完整的.