这个的简单版本是我有三列,得分为 1-10。即所有三列的分数都为 1-10。我想制作一个过滤器来检查所有三列中的一个或多个值。因此,如果我说过滤分数为 2,它将显示其中第 1 列、第 2 列、第 3 列有 2 的任何行,而不管其他 2 列有什么。这当然在 SQL 中使用 OR 语句非常简单
Where (Column1 = 2 OR Column2 = 2 or Column3 = 2)
我尝试制作一个组合的列,但这只是用所有组合制作一个新列,这可能是第一步,因为我可能会使用 Like 过滤器。然而,我的实际值并不像 1-10 那么简单,并且第 1、2、3 列并不总是具有相同的值,因此参数需要获取从所有 3 列生成的列表,而我是一个多值。例如。可能有 6000 个可能的值,但给定的报告每列中可能有 50 个不同的值,因此最终列表将有 150 个。
最后可能是:List1(Value2)、List2(Value16)、List3(Value25),那么如果这 3 个值中的任何一个存在于 3 列中的任何一列中,它将被过滤。
创建一个布尔记录级计算字段,指示是否应包含记录,然后将该字段放在过滤器架上,仅保留计算结果为 True 的记录。
例如,创建一个名为 Score_Of_Interest 的参数以允许用户选择单个分数,然后您的布尔字段(名为 Include_This_Record?)可以定义为:
[Field_One] = [Score_Of_Interest] OR [Field_Two] = [Score_Of_Interest] OR [Field_Three] = [Score_Of_Interest]
您可以通过添加布尔参数来覆盖特定的兴趣分数并为用户提供包含所有记录的选项来进行扩展。或者通过使用集合而不是参数来允许用户选择要包含的多个分数。
本质上,使用参数向用户询问单值问题,并使用计算字段将他们的回答与数据记录进行比较。