2013-10-11 105 views
3

,当我尝试运行我的看法,但不知道什么我与我的计算做错了,我得到这个错误算术溢出错误转换浮动错误在SQL

Arithmetic overflow error converting float to data type numeric

。我已经研究过,但目前还无法解决。

这里的代码导致错误行:

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

回答

10

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

您应仔细阅读此页:

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

这太在这里解释,但基本上第一个参数(精度)是数字的最大数(在你的情况3),第二个参数(比例)是小数点右侧的位数,它总是从小数点左边的位数开始。所以在你的情况下,3-2 =小数点左边允许的1位数字,这就是为什么你的最大值只能是9.99。

+0

我不知道该怎么做......如果你愿意,可以详细说明会有帮助。 thnx – moe

+1

只是将'NUMERIC(3,2)'改为'NUMERIC(30,15)'之类的东西。 –

+0

我想我知道你在说什么,那就是问题所在。日Thnx – moe

相关问题