我有一个数据库函数,我能够从中获得正确的结果,但是当我尝试使用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。
答案 0 :(得分:0)
我们不知道您的功能是什么,但您可能先输出原始数据然后再将其加总。
;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
答案 1 :(得分:-1)
想知道你是否在查询中使用了group by子句,因为我没有看到发布的。 分组依据(列)有(条件)。您在'Having'条款中的'where'中指定的内容