数据库函数的 SUM 返回的值远高于实际 SUM



我有一个数据库函数,我能够从中获得正确的结果,但是当我尝试使用 SUM 对结果求和时,它返回的值要高得多。

SELECT
SUM([DATABASE].[dbo].[fn_GetCharges]([TABLE1_DATE],[TABLE1_CUST],[TABLE1_SITE],[TABLE1_SERV])) AS [GROSS_REVENUE]
FROM [DATABASE].[dbo].[TABLE1]
WHERE
[TABLE1_ROUT] = '1234'
AND [TABLE1_DATE] = '2018-05-08'

这将返回大约 15,740 的 SUM 值。

如果我删除 SUM 和 GROUP BY 函数,那么它会显示每个返回的值,我手动将其总计到大约 750。

我正在使用Microsoft SQL Server 2014。

我们不知道您的函数中有什么,但您可以先输出原始数据,然后再对其进行求和。

;WITH cte AS (
SELECT
[DATABASE].[dbo].[fn_GetCharges]([TABLE1_DATE],[TABLE1_CUST],[TABLE1_SITE],[TABLE1_SERV]) AS [GROSS_REVENUE]
FROM [DATABASE].[dbo].[TABLE1]
WHERE
[TABLE1_ROUT] = '1234'
AND [TABLE1_DATE] = '2018-05-08'
GROUP BY whatever_you_grouped_by_that_gave_correct_results
)
SELECT SUM(gross_revenue) AS gross_revenue
FROM cte

想知道您是否在查询中使用了分组依据子句,因为我没有看到一个发布。 分组依据(列(具有(条件(。您在"拥有"子句的"位置"中指定的内容

最新更新