我在查询中有一个计算字段,用于获取每位客户的总收入,并减去每位客户的总费用,以获得该客户的利润。只要客户具有成本价值,该公式就可以正常运行,但如果客户没有成本,则该公式忽略该收入存在并将该客户从总数中排除,并且查询不会将其包括在返回的结果中。有没有办法解决公式,包括这些客户没有成本,但仍然产生收入?
SELECT [Company Information].[Company Name], ([2 YTD - Customer
Revenues].SumOfSumOfCharge-[2 YTD - Customer Costs].[SumOfTotal Cost])
AS [Customer Margin]
答案 0 :(得分:1)
对于从Access会话中运行的查询,您可以使用Nz
在计算差异时使用Access替换为Null ...
Nz([2 YTD - Customer Costs].[SumOfTotal Cost], 0)
或者,您可以使用IIf
表达式来完成同样的事情......
IIf([2 YTD - Customer Costs].[SumOfTotal Cost] Is Null, 0, [2 YTD - Customer Costs].[SumOfTotal Cost])
对IIf
的支持内置于db引擎中,因此可用于任何Access查询。 Nz
是数据库引擎可以在Access会话中使用的外部(VBA)函数。因此理论上IIf
方法应该更快,但在实践中可能不会明显 。