算术溢出错误将货币转换为数据类型数字

时间:2011-05-16 04:36:15

标签: sql-server-2005

这是我的查询我在临时表中插入了一个值,但是我得到的错误是这样的..

  

算术溢出错误转换   钱到数据类型数字。

查询是:

DECLARE @EBT money
Declare @ConversionRatio money
Declare @TotalRevenues money

insert into #SummarySheet(Item,INR,Dollar,Percentage) 
VALUES ('EBT', isnull(@EBT,0), isnull(@EBT,0)/isnull(@ConversionRatio,0), 
         isnull(@EBT,0)/isnull(@TotalRevenues,0))

FYR:

值为:

@TotalRevenues="1.00"
@EBT="-50995944.26"
@ConversionRatio="44.5"

如何纠正它......

2 个答案:

答案 0 :(得分:1)

你的桌子不是钱。

它是数字(十进制):并且对于计算值

而言不够宽

另外,为避免除以零错误,这两项计算

isnull(@EBT,0)/isnull(@ConversionRatio,0)
isnull(@EBT,0)/isnull(@TotalRevenues,0)

应该是

isnull((@EBT / NULLIF(@ConversionRatio,0)), 0)
isnull((@EBT / NULLIF(@TotalRevenues,0)), 0)

答案 1 :(得分:1)

算术溢出错误

  

目标数据类型没有   处理空间的能力

     

请增加空间