2016-06-09 53 views
1

我试图使用SSAS表格模型作为数据源来构建一个简单的报表。模型中有两个不同的维度 - 应该用作第一个参数的UserGroups和作为第二个参数的区域。这些维度与模型中的M2M相关。使用表格模型的M2M技巧计算出的简单度量可以在Excel和PBID中正常工作。SSRS的SSRS级联参数SQL Server 2014中的维度之间的M2M关系的表格数据源BI

我需要这些参数在SSRS报告中级联。即在UserGroups下拉列表中选择一个或多个(Allow multiple values参数选项为ON)值后,应该过滤区域下拉菜单。

在将查询设计器中的两个维都放到筛选器窗格中后,我会收到带有隐藏数据集的两个参数。一切看起来都很好,但第一个参数(UserGroups)实际上不会过滤Regions下拉列表。

我想我明白这个问题的性质。在将与M2M相关的维放置在相同的行/列窗格上时,我们在其他客户端工具(如Excel)中看到相同的图片 - 在我们检查数据透视表字段中的度量之前,第二维将显示在数据透视表中的所有成员。第二个维度(我的案例中的区域)的所有成员都会在衡量进入时立即消失 - 如果度量值为空,则Excel足够聪明,可以消除维度成员。但是这在SSRS中不会发生。

所有“自动”级联参数创建在单个维度的层次结构内都可以正常工作。我希望这可以与一对多的相关维度一起工作。但是,如何扩展/修改自动创建的MDX查询,以便将第二个参数数据集过滤掉?在这种情况下,看起来SELECT (StrToSet (@[UserGroupsUserGroups], CONSTRAINED)) ON COLUMNS是不够的。我还需要检查度量值以筛选出区域列表。不幸的是,我不是MDX专家。请帮我将这个检查注入查询。

回答

0

你在正确的轨道上,并给出了一个很好的解释。正如你发现的那样,没有自动的方法来使参数级联。您需要将MDX过滤器添加到第二个参数才能实现此目的。

就实际查询而言,没有足够的信息来给你一个确切的查询。但是,您将使用StrToSet来传递第一个参数,并使用FILTER函数来限制范围。正如你所说,包括一个度量是一种获得两个参数的“非空”组合的方法。如果遇到示例查询的特定问题,请随时提供更多详细信息。