错误“附近的错误语法if,then,else”请更正
我正在创建一个计算兴趣的函数。 dbo.days1()是一个函数,它没有给出天错误“附近的错误语法if,then,else”请更正
CREATE FUNCTION dbo.int1
(
)
RETURNS int
as
begin
declare @days int
set @days = dbo.days1()
if @days > 0
then
return(select((((dbo.delivery.roi * dbo.delivery.adv1)/100)/365)*@days)from delivery)
else
return (0)
end if
END
它给了我语法错误附近,如果当时和else.how纠正
你为什么不能尝试像下面
CREATE FUNCTION dbo.int1
(
)
RETURNS int
as
begin
declare @days int
set @days = dbo.days1()
if @days > 0
begin
return(select((((dbo.delivery.roi * dbo.delivery.adv1)/100)/365)*@days)from delivery)
end
return (0)
end
试试这个
CREATE FUNCTION dbo.int1
(
)
RETURNS int
as
begin
declare @days int
set @days = dbo.days1()
if @days > 0
Begin
return(select((((dbo.delivery.roi * dbo.delivery.adv1)/100)/365)*@days)from delivery)
End
else
Begin
return (0)
End
END
没有then
并在SQL 012 end if
部分声明。
参考MSDN
你的整个功能可以改写成一条线,以排除是否与任何其他变量,这使得它有点难以虽然阅读:
create function dbo.int1()
returns int
as
begin
declare @days int = dbo.days1(),
@returnInt int = 0
if @days > 0
begin
set @returnInt = (isnull((select((((dbo.delivery.roi * dbo.delivery.adv1)/100)/365)*dbo.days1())from delivery), 0))
end
return (@returnInt)
end
。有效。 – 2014-10-09 11:32:43
但我不想要负面价值。如果dbo.days1()返回一个负值,那么函数dbo.int1()应该返回0 – 2014-10-09 11:38:55
已更新代码以迎合负向日期 – 2014-10-09 11:41:30
它给DIFF错误“最后语句中包含的语句必须是返回语句“ – 2014-10-09 11:27:31
我已经更新了我的代码。现在可以尝试 – SDK 2014-10-09 11:34:21
它给出了相同的错误 – 2014-10-09 11:41:09