Ms Ms:如何获取列的平均值但忽略另一列为0的行?

时间:2016-08-03 15:03:53

标签: ms-access average ms-access-2013

我在报告中有两列qty_reqqty_issued。我需要找到qty_issued列中值的平均值。问题是,qty_req的相应值有时为0.我需要将qty_issued列的平均值仅用于qty_req 的行0.我该怎么做?

从我的其他问题中分离出来:MS Access: How can I average a list of quantities on a report where the quantities are not zero?

2 个答案:

答案 0 :(得分:2)

如果要在报表上的文本框的控件来源中执行此操作,则可以利用Avg()忽略空值的事实。

所以,当qty_req<>时0,在平均值中包含qty_issued。否则使用Null而不是qty_issued值。

=Avg(IIf(qty_req <> 0, qty_issued, Null))

如果您想在查询中执行此操作...

SELECT Avg(IIf(qty_req <> 0, qty_issued, Null)) FROM YourTable;

答案 1 :(得分:0)

您可以在查询中设置条件,而不是查看0的qty_req:

SELECT Avg(MyTable.qty_issued) AS Avg_Issued
FROM MyTable
GROUP BY MyTable.qty_req
HAVING MyTable.qty_req <> 0;