我有一个数据库函数,我能够从中获得正确的结果,但是当我尝试使用 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
想知道您是否在查询中使用了分组依据子句,因为我没有看到一个发布。 分组依据(列(具有(条件(。您在"拥有"子句的"位置"中指定的内容