Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

算术溢出错误…请帮助。SQL

算术溢出错误…请帮助。SQL,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我收到了错误 将表达式转换为数据类型浮点时出现算术溢出错误 关于以下代码: SELECT b.[CUSIP NUMBER], b.[PASS THRU RATE], a.[CURRENT BALANCE], b.[ORIGINAL WA MATURITY], b.[CURRENT WA MATURITY], (b.[ORIGINAL BALANCE] * ((b.[PASS THRU RATE]*.01)/12))/ (1-((1 + power (( (b.[PA

我收到了错误

将表达式转换为数据类型浮点时出现算术溢出错误

关于以下代码:

SELECT b.[CUSIP NUMBER],
   b.[PASS THRU RATE],
   a.[CURRENT BALANCE],
   b.[ORIGINAL WA MATURITY],
   b.[CURRENT WA MATURITY],
   (b.[ORIGINAL BALANCE] * ((b.[PASS THRU RATE]*.01)/12))/ (1-((1 + power (( (b.[PASS THRU RATE]*.01 )/ 12), -b.[ORIGINAL WA MATURITY] ) )))

   FROM DBO.mbs012013 a, DBO.mbs022013 b
   WHERE a.[CUSIP NUMBER] = b.[CUSIP NUMBER]
我没有指定数字为任何特定类型,因此我不确定为什么会收到此错误。如果有人能告诉我如何解决这个问题,我将不胜感激


参考:cusip编号是一个序列号,其余是输入(利率、银行余额、月到期日等)

问题可能在这里:

power (( (b.[PASS THRU RATE]*.01 )/ 12), -b.[ORIGINAL WA MATURITY] )
如果
b.[通过率]
较小,而
-b.[原始WA到期日]
较大,则结果可能大于
数值类型所能容纳的值。尝试将其转换为浮动:

power (( CAST(b.[PASS THRU RATE]*.01 / 12) AS FLOAT), -b.[ORIGINAL WA MATURITY] ) )))

你说
通过率可以是
1-10
原始WA到期日
之间的
0-360

您可能遇到的最坏情况是
通过率
=1和
原始WA到期日
=360

如果是那样的话,你会做什么

SELECT POWER(0.0008333333333, -360)
这有一个结果。SQL Server中没有任何数据类型的范围大于
float
,并且“仅”允许范围为
±1.79E+308

如果需要进行这些计算,则需要在TSQL之外进行。但是你确定你的公式是正确的吗

不应该是这样的吗

SELECT POWER(1 + 0.0008333333333, -360)

SELECT POWER(1 - 0.0008333333333, -360)

这是什么数据库系统?SQL只是许多数据库使用的查询语言。我们需要知道这是针对Oracle、Postgres、MySQL、SQL Server、IBM DB2还是其他什么。请添加相关且有意义的标签-谢谢!很抱歉,它的SQL Server可能与的重复,您可能会被零或类似的数字除SQL Server中没有数据类型可以处理
10^360
错误消息正在抱怨溢出转换为浮点。@MartinSmith-奇怪的是,
选择幂(.01,-350)
导致将表达式转换为数据类型float时出现
算术溢出错误。
@HABO-也就是
1E+700
。浮点数上升至
1.79E+308