0
我已经创建了下面的函数,并且它似乎随机将@FCST和@QTY值更改为随机选择。下面是调试中返回错误值为@FCST的程序示例。由于@FCST在9.53,我预计它会返回9.53。 SQL函数 - 将变量设置为随机值
CREATE FUNCTION dbo.LTBADJ
(@MAT VARCHAR(30),@LCUT DATE, @QS DATE,@STAT FLOAT, @MCA FLOAT)
RETURNS FLOAT
AS BEGIN
DECLARE @HD DATE
DECLARE @ED DATE
DECLARE @FCST FLOAT
DECLARE @QTY FLOAT
DECLARE @YRS FLOAT
SET @ED =
(SELECT TOP 1 [EO_END_DATE] FROM [dbo].[EO_LTB]
WHERE [W_PART_NUMBER] = @MAT
AND [APPROVED_DATE] <= @LCUT
ORDER BY [EO_END_DATE] DESC)
SET @HD =DATEADD(YEAR,2,@QS)
SET @FCST = (CASE WHEN @MCA <= @STAT THEN @MCA ELSE @STAT END)
SET @FCST = (CASE WHEN @FCST <.5 THEN .5 ELSE @FCST END)
SET @YRS = (DATEDIFF(DAY,@HD,@ED) + 730)/365
SET @QTY = @FCST * @YRS
SET @QTY = (CASE WHEN @ED<[email protected] THEN 0 ELSE @QTY END)
RETURN @QTY
END ;
编辑:@QTY的实例计算错误
嗯...这不是'9.53' ..这'9.53×10^-2' ='9.53 X 0.01' ..这是0.0953 – 2014-11-24 21:52:09
并且结果是'5×10^-1' ='5 x 0.1' ='0.5' ..这就是你指定它的时候少于0.5 – 2014-11-24 21:53:50
在你的更新中,QTY是'21.345 +'..应该是什么? – 2014-11-24 21:58:41