【问题标题】:Calculated Query Field ignoring some results忽略某些结果的计算查询字段
【发布时间】:2015-09-01 15:34:18
【问题描述】:

我在查询中有一个计算字段,它计算每位客户的总收入并减去每位客户的总成本,以获得我们与该客户的利润。只要客户具有成本值,该公式就可以正常工作,但如果客户没有成本,则该公式将忽略存在的收入并将该客户从总数中排除,并且查询不会将它们包括在返回的结果中。有没有办法修正公式,以免费包含这些客户但仍能产生收入?

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

【问题讨论】:

  • 是的,这解决了问题。

标签: ms-access ms-access-2007


【解决方案1】:

对于从 Access 会话中运行的查询,您可以使用 Nz 让 Access 在计算差异时用 0 替换 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 方法理论上应该更快,但在实践中可能不会明显快。

【讨论】:

  • 我曾尝试过 IIF 方法,但是一直遇到关于我的分组的错误消息,并且不包含各种东西作为聚合函数,所以我切换到了 Nz 方法。感谢您的帮助。
猜你喜欢
  • 2017-07-04
  • 2020-10-14
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多