当我第一次运行下面的函数时,它会失败并出现以下错误:
\n\n\n\n\n8124(在包含外部引用的聚合表达式中指定了多个列。)
\n
第二次运行就正常了。
\n\n如果我删除*DATEDIFF(D, e.FRADATO , @til) 它\xe2\x80\x99s 没问题。
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\nRun Code Online (Sandbox Code Playgroud)\n\n该函数在SQL Server 2008 R2和SQL Server 2016中运行没有任何问题。
\n