-2

SQL Server で関数を作成しましたが、"return" ステートメントでエラーが発生しました。

私が直面しているエラーは

Incorrect syntax near 'RETURNS'.

私のSQL関数は以下です

 CREATE FUNCTION UTILIZATION(@START_DATE DATETIME,
                        @END_DATE DATETIME,
                        @D1 DECIMAL(5,2),
                        @D2 DECIMAL(5,2),
                        @D3 DECIMAL(5,2),
                        @D4 DECIMAL(5,2),
                        @D5 DECIMAL(5,2),
                        @D6 DECIMAL(5,2),
                        @D7 DECIMAL(5,2)) 
RETURNS DECIMAL(5,2)
AS
BEGIN
DECLARE
    @UTILIZATION DECIMAL(5,2),
    @TOTAL_HOURS DECIMAL(5,2),
    @TOTAL_HOURS_ACCRUED DECIMAL(5,2),
    @QUERY  NVARCHAR(MAX);
BEGIN
SET @TOTAL_HOURS = @D1 + @D1 + @D3 + @D4 + @D5 + @D6 + @D7

SET @QUERY = ' SELECT TOTAL_ACTUAL_HOURS AS @TOTAL_HOURS_ACCRUED FROM WEEK_MASTER WHERE' +
             ' START_DATE = ' + '''' + @START_DATE + '''' +' AND ' +
             ' END_DATE = ' + '''' + @END_DATE + ''''

EXEC SP_EXECUTESQL @QUERY

SET @UTILIZATION = (@TOTAL_HOURS/@TOTAL_HOURS_ACCRUED)*100

RETURNS @UTILIZATION
END
END
4

1 に答える 1

1

RETURNの代わりに使用RETURNS

RETURN @UTILIZATION

これは、マニュアルに従って関数を作成するための構文です

CREATE FUNCTION [ schema_name. ] function_name 
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type 
    [ = default ] [ READONLY ] } 
    [ ,...n ]
  ]
)
RETURNS return_data_type
    [ WITH <function_option> [ ,...n ] ]
    [ AS ]
    BEGIN 
        function_body 
        RETURN scalar_expression
    END
[ ; ]
于 2013-03-13T11:24:13.323 に答える