MS Access:如何在数量不为零的报告中平均数量列表?
MS Access: How can I average a list of quantities on a report where the quantities are not zero?
我有一份报告。这会报告 returns 很多行。其中一列是 qty_req
(所需数量)。我需要 AVG()
这一列,并将平均值放在报告的底部。问题是有时某些行在此列中有一个零。我希望平均值排除所有为零的行。我怎样才能做到这一点?
我尝试过的方法:我尝试在查询中使用 DAvg
,但它使查询时间变得非常长。
那么您不能使用计算的 SUM()
或 AVG()
字段,就这么简单。
这些函数始终使用报表中的所有行。
需要DSum()
或DAvg()
单独计算。
如果速度太慢,您需要解决这个问题。
Avg()
忽略 Null 值。因此,您可以使用 IIf()
表达式将 Null 交换为零值,然后将 Avg()
基于该 IIf()
表达式。
这是我报告页脚中文本框的控件源:
=Avg(IIf([gainOrLoss]=0, Null, [gainOrLoss]))
gainOrLoss
是报表记录源中的一个字段。并且文本框显示所有那些既不是零也不是 Null 的值的平均值。
我有一份报告。这会报告 returns 很多行。其中一列是 qty_req
(所需数量)。我需要 AVG()
这一列,并将平均值放在报告的底部。问题是有时某些行在此列中有一个零。我希望平均值排除所有为零的行。我怎样才能做到这一点?
我尝试过的方法:我尝试在查询中使用 DAvg
,但它使查询时间变得非常长。
那么您不能使用计算的 SUM()
或 AVG()
字段,就这么简单。
这些函数始终使用报表中的所有行。
需要DSum()
或DAvg()
单独计算。
如果速度太慢,您需要解决这个问题。
Avg()
忽略 Null 值。因此,您可以使用 IIf()
表达式将 Null 交换为零值,然后将 Avg()
基于该 IIf()
表达式。
这是我报告页脚中文本框的控件源:
=Avg(IIf([gainOrLoss]=0, Null, [gainOrLoss]))
gainOrLoss
是报表记录源中的一个字段。并且文本框显示所有那些既不是零也不是 Null 的值的平均值。