Lyn*_*hie 2 sql t-sql sql-server
我已经编写了一个函数,只是为了解决Pro-Rata Clawback的问题.
但是每次运行时我都会得到一个Divide By Zero Error,我简单地将功能打破了.
DECLARE @ProRataAmount DECIMAL(8,2), @DaysRemaining INT,@NetValue DECIMAL(8,2), @TimeOnRisk INTEGER
SET @NetValue = 29.00
SET @TimeOnRisk = 8
SET @DaysRemaining = (365 - @TimeOnRisk)
PRINT @DaysRemaining
PRINT @NetValue
SELECT @NetValue / (@DaysRemaining/365)
Run Code Online (Sandbox Code Playgroud)
那里没有值除以零,那么为什么它会返回错误?
干杯.
INT/INT将返回INT.
请尝试以下操作(请注意365.0):
SELECT @NetValue / (@DaysRemaining/365.0)
Run Code Online (Sandbox Code Playgroud)
现在,为了防止@DaysRemaining为ZERO,你仍然可以产生一个除以零,除非你像这样陷入它:
SELECT @NetValue / (NullIf(@DaysRemaining,0)/365.0)
Run Code Online (Sandbox Code Playgroud)