【问题标题】:FUNCTION GET ERROR [duplicate]函数获取错误[重复]
【发布时间】:2023-03-18 01:12:02
【问题描述】:

我想为一个目的创建一个函数,函数就是这样但是它不起作用。

CREATE FUNCTION FNLVDAYS 
  (@MONTH SMALLINT,@YEAR SMALLINT)
  RETURNS INT
 AS
  BEGIN
  DECLARE @LVDAYS INT

  SELECT COALESCE((SELECT SUM (LVDAYS) FROM LeaveTran  WHERE
       LeaveTran.EMPCODE=LeaveMaster.EMPCODE AND LeaveTran.LVTYPE=LeaveMaster.LVTYPE   AND MONTH(LV_FROM)=@MONTH AND YEAR(LV_FROM)=@YEAR ),0) AVAILED
FROM LEAVEMASTER 

 RETURN @LVDAYS
 END

给出这个错误:

     Msg 444, Level 16, State 2, Procedure FNLVDAYS, Line 8
     Select statements included within a function cannot return data to a client.

【问题讨论】:

  • 您在 SQL Server 不支持的函数中编写了 select 查询。您可以选择一些变量或临时表然后对其进行处理。
  • 您似乎不需要这里的变量声明,因为您不使用它。

标签: sql sql-server-2008-r2


【解决方案1】:

希望这会有所帮助...

SELECT @LVDAYS=COALESCE((SELECT SUM (LVDAYS) FROM LeaveTran  WHERE
       LeaveTran.EMPCODE=LeaveMaster.EMPCODE AND LeaveTran.LVTYPE=LeaveMaster.LVTYPE   AND MONTH(LV_FROM)=@MONTH AND YEAR(LV_FROM)=@YEAR ),0) AVAILED
FROM LEAVEMASTER 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2014-05-22
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    相关资源
    最近更新 更多