数据库函数的SUM返回比实际SUM高得多的值

时间:2018-05-22 16:18:14

标签: sql sql-server

我有一个数据库函数,我能够从中获得正确的结果,但是当我尝试使用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。

2 个答案:

答案 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'中指定的内容