小编ari*_*ldh的帖子

SQL Server 2019 中标量 UDF 内联问题

当我第一次运行下面的函数时,它会失败并出现以下错误:

\n\n
\n

8124(在包含外部引用的聚合表达式中指定了多个列。)

\n
\n\n

第二次运行就正常了。

\n\n

如果我删除*DATEDIFF(D, e.FRADATO , @til) 它\xe2\x80\x99s 没问题。

\n\n
ALTER FUNCTION [dbo].[fnc_2019_test] \n    (@m_id INT, @fra DATE, @til DATE)  \nRETURNS INT\nAS  \nBEGIN \n    RETURN\n        (SELECT     \n             SUM(ISNULL(e.FORBRUK, 0) * DATEDIFF(D, e.FRADATO, @til))\n         FROM \n             dbo.mlr_eos_avl e \n         WHERE  \n             e.M\xc3\x85LER_ID = @m_id   \n             AND @fra < e.DATO \n             AND DATEADD(D, -1, @til) >= e.FRADATO) \n\nEND\n
Run Code Online (Sandbox Code Playgroud)\n\n

该函数在SQL Server 2008 R2和SQL Server 2016中运行没有任何问题。

\n

t-sql sql-server user-defined-functions sql-server-2019

4
推荐指数
1
解决办法
872
查看次数