让我们考虑一个报表上的多项选择参数:员工
这个参数有很多可能的值。最初,列表上没有显示任何内容,并且有一个关联的文本字段搜索参数,它使用搜索字符串的前n 个匹配项更新Employee选择列表。
如果输入的搜索查询是John Doe,我们可以想象现在选择列表显示:
- 约翰·多伊
- ...
- 泽维尔·约翰·杜森
现在我可以从这个过滤列表中选择任意数量的项目,但是如果我想同时选择John Doe和Alicia Keys,会发生以下情况:
- 首先,当我输入搜索字符串“John Doe”时,选择列表会相应地填充
- 我选择John Doe - 好的
- 我输入搜索字符串“Alicia Keys”,选择列表也被填充
- John Doe 的选择消失了 - 我希望能够同时选择Alicia和John,但我不想通过数千个名字的长选择列表
更新:
忘了提到我们在后台有一个维度为“员工”的 OLAP 多维数据集。该维度用作参数的来源,参数数据集使用 MDX 获取值,因此此处无法应用 SQL 解决方案。
当前解决方案使用 MDX 过滤器和头函数创建自定义集,然后在 MDX 查询的 ROWS 部分中使用该集。
以下是该集合的创建方式:
SET setEmployees AS {
HEAD(
FILTER( [Employees].[Employees].ALLMEMBERS,
INSTR([Employees].[Employees].CURRENTMEMBER.Name,@EmployeeSearch,1 >= 1 )
)
,100)
}
基本上这个解决方案的问题是如何将多个搜索字符串添加到 instr 函数
这种情况有通用的解决方案吗?我是否从错误的方向解决问题?