我有一份报告。此报告返回大量行。其中一列是qty_req
(需要数量)。我需要AVG()
此列,并将平均值放在报告的底部。问题是有时某些行在此列中为零。我希望平均值排除任何存在零的行。我怎么能做到这一点?
我尝试了什么:我尝试在查询中使用DAvg
,但这使查询时间变得非常大。
答案 0 :(得分:2)
Avg()
忽略Null值。因此,您可以使用IIf()
表达式将Null替换为零值,然后将Avg()
基于IIf()
表达式。
以下是报告页脚中文本框的控件来源:
=Avg(IIf([gainOrLoss]=0, Null, [gainOrLoss]))
gainOrLoss
是报告的记录来源中的字段。并且文本框显示所有那些既不为零也不为空的值的平均值。
答案 1 :(得分:-1)
那么你就不能使用计算出来的SUM()
或AVG()
字段,就这么简单。
这些函数始终使用报表中的所有行。
您需要DSum()
或DAvg()
单独计算。
如果这太慢,你需要解决这个问题。