Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 将货币转换为数字数据类型时出现算术溢出错误_Sql Server 2005 - Fatal编程技术网

Sql server 2005 将货币转换为数字数据类型时出现算术溢出错误

Sql server 2005 将货币转换为数字数据类型时出现算术溢出错误,sql-server-2005,Sql Server 2005,这是我的查询,我在临时表的中插入了一个值,但我得到的错误如下 算术溢出错误转换 将money转换为数据类型numeric 查询是: DECLARE @EBT money Declare @ConversionRatio money Declare @TotalRevenues money insert into #SummarySheet(Item,INR,Dollar,Percentage) VALUES ('EBT', isnull(@EBT,0), isnull(@EBT,0)/isn

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

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

查询是:

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"

如何纠正…

你的桌子不是钱

它是数字的(十进制):并且不够宽,不适合计算值

此外,为了避免被零除的错误,这两个计算

isnull(@EBT,0)/isnull(@ConversionRatio,0)
isnull(@EBT,0)/isnull(@TotalRevenues,0)
应该是

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

算术溢出错误

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

请增加空间


isnull(@TotalRevenues,0)作为除数,isnull(@ConversionRatio,0)。这是不正确的,那么这就是公式……或者我应该更改datatypeI的声明我不知道这是什么意思。表的结构是什么??那些列是什么类型的
INR
Dollar
Percentage
??