在sql中转换浮点错误的算术溢出错误

时间:2013-10-11 20:15:41

标签: sql sql-server tsql

我收到此错误

  

将float转换为数据类型numeric

的算术溢出错误

当我尝试运行我的视图但不确定我的计算错误是什么时。我已经研究过,但到目前为止还无法解决。

以下是导致错误的代码行:

ISNULL(CAST(CAST(TOTAL_APPTS.APPT_CNT AS FLOAT) / TOTAL_RECS.PAT_CNT AS NUMERIC(3, 2)), 0) AS [CONVERSION RATE]

1 个答案:

答案 0 :(得分:16)

您对NUMERIC的精确度和比例参数非常小。你试过增加那些吗?您的数值只能处理最高9.99的数字。

你应该仔细阅读这个页面:

http://msdn.microsoft.com/en-us/library/ms187746.aspx

这里解释太多了,但基本上第一个参数(精度)是最大位数(在你的情况下为3),第二个参数(scale)是小数点右边的位数,它总是会占用小数点左边的数字位数。因此,在您的情况下,小数点左侧允许3-2 = 1位数,这就是为什么您的最大值只能是9.99。