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

moe*_*moe 10 sql t-sql sql-server

我收到了这个错误

将float转换为数据类型numeric的算术溢出错误

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

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

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

ror*_*.ap 20

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

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

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

这里解释得太多了,但基本上第一个参数(精度)是最大位数(在你的情况下为3),第二个参数(scale)是小数点右边的位数,总是需要远离小数点左边可以有的位数.因此,在您的情况下,小数点左侧允许3-2 = 1位数,这就是为什么您的最大值只能是9.99.

  • 只需将'NUMERIC(3,2)'更改为'NUMERIC(30,15)'. (2认同)