【发布时间】:2016-05-09 23:36:53
【问题描述】:
SSRS 2008 R2 - 报表生成器 3.0 - 查询 SQL Server 2008 R2
我有一份报告正在从具有“Last_Executed”列的数据库中获取数据。我的数据集正在返回一个查询,该查询具有专用于 DATEDIFF() 的列,该列返回自运行时执行以来的天数。我现在需要的是在过去 7 天键入的过滤器。
您可能会说,“只需创建另一个数据集并将您的查询设置为仅返回这些数据”,我可能会崩溃并这样做,但我不禁认为我拥有的数据有更好的解决方案.
有一个带有占位符的文本框,我想显示这个计数。我已经尝试过(如果字段的语法关闭,那可能只是我的记忆,if 检查是我所质疑的):
=SUM(IIF((Fields!MyData.Value <= 7),1,0),"MyDataSet")
=SUM(IIF(Cint(Fields!MyData.Value <= 7),1,0),"MyDataSet")
=COUNT(Fields!MyData.Value <= 7)
必须在“IF”之外添加范围,以允许引用相关数据。我尝试了“演员表”的变体,但没有一个返回正确的计数。结果集返回 1400 个项目,我的测试数据应根据日期检查返回 41。我分别得到 581、581 和 1400,如果我删除“
为什么“
找到的解决方案:
原来查询返回的 NULL 导致了总和中的错误计数。最终的求和表达式最终是:
=SUM(IIF(IsNothing(Fields!MyData.Value),0,IIF(Fields!MyData.Value <= 7,1,0)),"MydataSet")
IsNothing 检查的 0 为 true 解决了我的问题,可惜我没有先检查 NULL 错误。感谢您的帮助:)
【问题讨论】:
标签: sql-server-2008-r2 ssrs-2008-r2 reportbuilder3.0