计算的查询字段忽略一些结果

时间:2015-09-01 15:34:19

标签: ms-access ms-access-2007

我在查询中有一个计算字段,用于获取每位客户的总收入,并减去每位客户的总费用,以获得该客户的利润。只要客户具有成本价值,该公式就可以正常运行,但如果客户没有成本,则该公式忽略该收入存在并将该客户从总数中排除,并且查询不会将其包括在返回的结果中。有没有办法解决公式,包括这些客户没有成本,但仍然产生收入?

SELECT [Company Information].[Company Name], ([2 YTD - Customer 
Revenues].SumOfSumOfCharge-[2 YTD - Customer Costs].[SumOfTotal Cost]) 
AS [Customer Margin]

1 个答案:

答案 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方法应该更快,但在实践中可能不会明显