用户定义函数帮助:"必须是批处理中的唯一语句"错误

时间:2014-08-04 23:06:00

标签: sql user-defined-functions

我正在尝试提供一个我可以提供日期的功能,它会返回由会计决定的逻辑所规定的财务期。如果我能让SQL与我玩得很好,下面的算法应该让我在那里。

我得到的错误是“CREATE FUNCTION必须是批处理中的唯一语句”,并且从我收集的“If”是一个语句。我尝试使用“Case”代替,并且引发了不同的错误。

CREATE FUNCTION fn_Get_Period
(
    @theDay Date
)
RETURNS Integer
AS
BEGIN

Declare @dayCursor Date
      , @period_End Date
      , @period_Counter Integer

Set @period_Counter = 1
Set @dayCursor = DATEADD(yy, DATEDIFF(yy,0,@theDay), 0)
Set @period_End = Dateadd(ww, 4, @dayCursor)

While @period_End < @theDay
Begin

    If @period_Counter % 3 = 0
        BEGIN
        set @dayCursor = Dateadd(ww, 5, @dayCursor)
        set @period_End = Dateadd(ww, 5, @period_End)
        END
    Else
        BEGIN
        set @dayCursor = Dateadd(ww, 4, @dayCursor)
        set @period_End = Dateadd(ww, 4, @period_End)
        END
    End
    Set @period_Counter += 1
End

RETURN @period_Counter

END
GO

对我的方法有一些了解是件好事。

非常感谢,

内特

0 个答案:

没有答案