我正在创建一个计算兴趣的函数。 dbo.days1()是一个没有天数的函数
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
它给了我语法错误,如果那么接近和否则要改正
答案 0 :(得分:1)
SQL then
声明中没有end if
和if..else
部分
参考MSDN
您可以将整个函数重写为一行以排除if和任何其他变量,这使得它更难阅读:
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
答案 1 :(得分:0)
为什么你不能尝试下面的
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
答案 2 :(得分:0)
尝试这个
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