2011-05-16 44 views
1

这是我的查询我插入值中临时表,但我越来越喜欢这个错误..算术溢出错误将钱给数据类型数字

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

查询:

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" 

如何纠正它....

+1

ISNULL(@ TotalRevenues,0)作为除数,和ISNULL(@ ConversionRatio,0)。这是不正确的 – 2011-05-16 04:38:09

+0

然后,这是公式....或我应该改变数据类型的声明 – 2011-05-16 04:43:20

+1

我不知道这是什么意思。 – 2011-05-16 04:44:24

回答

1

你的表是不是钱。

这是数字(十进制):并没有足够宽的计算值

此外,为避免被零个除错误,这2个计算

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

算术溢出错误

目的地数据类型不必 的容量来处理空间

麻烦增加空间

相关问题