函数microsoft sql-server中的语法不正确

时间:2013-10-25 12:59:47

标签: sql-server-2008

在'FROM'附近获取不正确的语法,不知道为什么..在函数之外这个代码工作正常(前提是我将RETURN更改为SELECT)并给出了所有信用的总和,它是一个浮点数。知道问题是什么吗?

CREATE FUNCTION [dbo].[getCredits] (@StudentID nchar(10))
RETURNS float
AS
BEGIN
    RETURN sum(credits)
    FROM kurser c
    INNER JOIN student_reg_kurstillfällen ci
    ON ci.kurser = c.coursecode
    WHERE ci.avslutad_kurs = 1 and StudentID = @StudentID
END

2 个答案:

答案 0 :(得分:1)

您正在执行无效的RETURN sum(credits) FROM

附注:如果StudentId是整数,请将参数数据类型更改为int或适当的。

CREATE FUNCTION [dbo].[getCredits] (@StudentID nchar(10))
RETURNS float
AS
BEGIN
    DECLARE @RetVal float 

    SELECT @RetVal = sum(credits)
    FROM kurser c
    INNER JOIN student_reg_kurstillfällen ci
    ON ci.kurser = c.coursecode
    WHERE ci.avslutad_kurs = 1 and StudentID = @StudentID

    RETURN @RetVal
END

答案 1 :(得分:1)

CREATE FUNCTION [dbo].[getCredits] (@StudentID nchar(10))
RETURNS float
AS
BEGIN
    RETURN
    ( 
    SELECT sum(credits)
    FROM kurser c
    INNER JOIN student_reg_kurstillfällen ci
    ON ci.kurser = c.coursecode
    WHERE ci.avslutad_kurs = 1 and StudentID = @StudentID
    )
END