当我第一次运行以下功能时,以下功能将失败,并出现以下错误:
8124(在包含外部引用的聚合表达式中指定了多个列。)
我第二次运行它运行正常。
如果我删除*DATEDIFF(D, e.FRADATO , @til)
它没有问题。
ALTER FUNCTION [dbo].[fnc_2019_test]
(@m_id INT, @fra DATE, @til DATE)
RETURNS INT
AS
BEGIN
RETURN
(SELECT
SUM(ISNULL(e.FORBRUK, 0) * DATEDIFF(D, e.FRADATO, @til))
FROM
dbo.mlr_eos_avl e
WHERE
e.MÅLER_ID = @m_id
AND @fra < e.DATO
AND DATEADD(D, -1, @til) >= e.FRADATO)
END
此功能适用于 SQL Server 2008 R2 和 SQL Server 2016 没有任何问题。