在SELECT
语句中,我试图计算一个精度为小数点后1位的百分比。
select语句中的此语句返回算术溢出错误:
CAST(((COUNT(TicketNbr)*100.00)/@TotalCount) AS Decimal (3,1)) END AS Percentage
COUNT(TicketNbr)
计数值为10.
@TotalCount值为10.
如果我没有投射结果,结果是1.0000。但是当我使用CAST
函数时,查询会产生算术溢出错误。
为什么会出现此错误?
答案 0 :(得分:3)
10 * 100.0 / 10的结果是100.0
它需要一个十进制小数(4,1)来保存该值。
您将其转换为十进制(3,1)将导致溢出错误