sql-server - SSRS“OR”过滤逻辑从“=”和“IN”运算符中过滤
问题描述
我正在编写一份报告,它需要从两个内置字段中的任何一个中过滤数据。所以我使用“FilterExpression”来根据下面的文章查询我的要求,即Reporting Services (SSRS) OR Filter Logic。这篇文章足以对大多数情况进行操作。但我正在尝试使用“=”和“IN”运算符进行过滤。
从文章中提到的示例中,如果我想从州列表或特定国家/地区过滤数据,我想从州(华盛顿、明尼苏达、田纳西、俄勒冈)或国家(美国)中过滤数据。我知道有人可能会建议只使用国家/地区字段,但我的应用程序与示例略有不同,它应该根据两列值中的任何一个过滤数据。所以我在一个全新的“filterexpression”中尝试了如下所示的内容并删除了各个过滤器:
=(Fields!Country.Value = "United States") Orelse (Fields!State.Value IN SPLIT("Washington,Minnesota,Tennessee, Oregon",",")).
但似乎代码中没有“IN”,因为窗口在其下方显示了一条红线,所以我需要找到一个替代方案(尚未弄清楚)。后来,我尝试按照文章中的行将Value设置为True(在函数日志到表达式旁边)并且表达式类型的数据类型为Boolean,但出现错误(我不知道如何真的行)。
解决方案
我会使用InStr函数来搜索列表中的 State 字段。
您的表达式如下所示:
=IIF(Fields!Country.Value = "United States" Orelse InStr("Washington,Minnesota,Tennessee, Oregon", Fields!State.Value) > 0, 1, 0)
我通常使用 1 和 0 作为过滤器值 - SSRS在将它们作为布尔值进行比较时,并不总是喜欢从1 = 1等表达式返回的 TRUE FALSE。
推荐阅读
- typescript - 带有默认参数的打字稿类型推断
- ios - UIScrollView:如何在拖动操作触摸键盘之前启动键盘关闭交互操作(如 WhatsApp)?
- c# - 有必要使用 RequestDownloadAndInstallStorePackageUpdatesAsync() 来实际安装更新吗?
- python - 如何在不遇到“AmbiguousStep”异常的情况下拥有两个具有相同名称的步骤?
- sql - 在一个时间间隔内生成时间戳范围并查询所有重叠事件
- sql - 根据 Timestamp(Date) 填充查询结果中的行
- python - 如何在 freezegun 中使用忽略包?
- tensorflow - 如何自动添加pb.cc的相对路径? proto
- r - 带示例的条件 group_by
- java - 执行失败 java.io.IOException:服务器返回 HTTP 响应代码:403 用于 URL: