【问题标题】:CountIf formula within MS Access reportMS Access 报告中的 CountIf 公式
【发布时间】:2012-07-02 23:21:35
【问题描述】:

我在访问报告中添加 CountIf 论坛的尝试很糟糕,结果发生了一些可怕的事情。

我正在尝试在我的报告标题中添加一个公式来计算我的 Service 列中包含特定单词的条目数。问题是我在 SQL 代码方面绝对是个业余爱好者。

=CountIf([Service]="Housing")

我希望的代码是否可以工作,但我似乎没有得到任何结果。

【问题讨论】:

  • 当然,只有当它是“房屋”这个词时才会计算它,而不是如果它在它里面..
  • 好吧,我的意图是计算住房的条目数量,还有其他服务,例如环境健康等。所以在这个例子中,我只希望它计算住房而不是玩游戏。我不明白“如果它在里面”部分。正如解释的那样,我不太擅长 SQL 编码和所有的云雀

标签: sql ms-access report ms-query


【解决方案1】:

Access 中没有Countif 函数。但是,您可以使用SumIIf(即立即如果)来完成同样的事情。试试:

=Sum(IIf([Service] Like "*Housing*", 1, 0))

以上假设您希望“服务”列包含“房屋”一词。这假设您在问题的措辞中是准确的。如果您真的想计算 Service 列正好等于“Housing”的记录数,您可以使用它:

=Sum(IIf([Service] = "Housing", 1, 0))

【讨论】:

  • 太棒了,谢谢!我不确定礼节是什么以及我是否需要为此提出另一个问题,但基本上数据库中的这些条目是针对那些在我工作中接受过培训的某些服务中犯过错误的人。并非每个人都接受过相同服务的培训,这是为了显示每个服务中每个人有多少“反馈条目”。报告询问人员姓名和日期,并输出已输入的条目。有没有办法只显示和填充为那个人输入的服务?
  • 您可以使用ANDOR 添加其他条件。例如,=Sum(IIf([Service] = "Housing" AND [EmployeeName] = "John"))。但是,由于您是在报表中执行此操作,因此最好在打开报表时过滤报表本身以仅显示某些记录。查看DoCmd.OpenReport 的帮助。如果您仍有问题,最好单独提出问题。
【解决方案2】:

这也有效:

=Count(IIf([Service]="Housing",1))

【讨论】:

  • 增加了在没有匹配项时不返回0 的好处
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多