我尝试使用SSAS表格模型作为数据源构建一个简单的报告。模型中有两个不同的维度 - 应该用作第一个参数的用户组和用作第二个参数的区域。这些尺寸在模型中与M2M相关。使用表格模型的M2M技巧计算的简单度量在Excel和PBID中运行良好。
我需要在SSRS报告中级联这些参数。即在UserGroups下拉列表中选择一个或多个(允许多个值参数选项为ON)值后,应过滤区域下拉列表。
将两个维度放到查询设计器中的“筛选器”窗格后,我会收到两个隐藏数据集的参数。一切看起来都很好,但第一个参数(UserGroups)实际上不会过滤区域下拉列表。
我想我理解这个问题的本质。当在相同的行/列窗格上放置与M2M相关的维度时,我们在其他客户端工具(如Excel)中看到相同的图片 - 第二维在数据透视表中显示其所有成员,直到我们检查数据透视表字段中的度量。一旦度量发挥作用,第二维的所有成员(在我的情况下是区域)就会消失 - 如果度量值为null,Excel足够聪明以消除维度成员。但这不会发生在SSRS中。
所有"自动"级联参数创建在单个维度的层次结构中很有效。我希望这与一对多相关维度同样有效。但是,如何为要过滤的第二个参数数据集扩展/修改自动创建的MDX查询?看起来SELECT ( StrToSet ( @[UserGroupsUserGroups], CONSTRAINED ) ) ON COLUMNS
在这种情况下还不够。我还需要检查度量值以过滤出区域列表。不幸的是,我不是MDX专家。请帮我把这个检查注入查询。
答案 0 :(得分:0)
您已走上正轨并对该方案做了很好的解释。如您所知,没有自动方法使参数级联。您需要将MDX过滤器添加到第二个参数才能实现此目的。
就实际查询而言,信息不足以为您提供准确的查询。但是您可以使用StrToSet
传递第一个参数并使用FILTER
函数来限制范围。正如你所说,包括一项措施是一种只获得" NonEmpty"两个参数的组合。如果您遇到示例查询的特定问题,请随时提供有关该问题的更多详细信息。