如何解决SSRS 多值参数计数表达式
我正在尝试根据选择的多值参数通过文本框中的计数表达式计算记录数。
我的桌子:
WSVLWOs
WO_NUMBER WO_ACTN_TY
18-003759 Adjust to Grade
18-005909 Repair / Replace Box
18-002559 Repair / Replace Box
18-003229 inspection
18-003224 Repair / Replace Box
我的计数表达式:
=Count(Fields!WO_NUMBER.Value,"WSVLWOs")
我的可用参数
Adjust to Grade
Repair / Replace Box
inspection
表上的过滤器:
现在当我选择多个参数时,它似乎没有给我参数值计数的总和,只有一个参数值。我的计数表达式有问题吗?
解决方法
您的过滤器表达式是
=Parameters!Tasks.Value(0) which is only the first selected parameter value.
有几种方法可以解决此问题。
您应该能够将表达式更改为 =JOIN(Parameters!Tasks.Value,",")
,尽管这可能无法正常工作,具体取决于数据类型等。所有这些都是将逗号分隔的列表传递给过滤器。
但是我会质疑这是否是最好的方法。如果可以,我会在数据集查询中进行过滤,因为这意味着只返回所需的数据,并且让您的计数变得更加简单。
如果您需要单个记录但也需要计数,则返回所有必需的行,并使用类似的数据集查询。
SELECT * FROM WSVLWOs WHERE WO_ACTN_TY IN(@Tasks)
@Tasks
将被传递到查询中,正确解析,您将只获得您需要的记录。您的 COUNT()
表达式与 then 工作正常。
如果您只需要计数,那么您可以在数据集查询中执行此操作并仅返回计数
SELECT COUNT(*) as myCount FROM WSVLWOs WHERE WO_ACTN_TY IN(@Tasks)
然后您只需引用数据集中的 myCount
字段即可获得答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。