SSAS计算字段

时间:2014-03-25 18:52:35

标签: ssas

我的多维数据集中有一些计算字段。我想在用户查询Excel中的数据时设置它,如果他们将一个计算字段添加到值中,如果他们将鼠标悬停在该值上,则会定义计算的创建方式。这可能吗?

实施例。 AHT = Tot_wrk_tm / vol

1 个答案:

答案 0 :(得分:0)

这取决于您拥有的客户端工具:如果您有自己的客户端工具,并且只需要访问度量的定义,则可以像执行MDX select语句一样执行以下SQL(但要注意)结果是表格,而不是单元格集:

select [MEASURE_NAME], [EXPRESSION]
  from $system.mdschema_measures
 where [CUBE_NAME] = '<your cube name>'

这将返回所有度量,计算出的度量值将在EXPRESSION列中显示。这适用于2008版本。

如果您的用户使用的标准工具对显示器没有任何影响,那么您将需要一个显示计算的属性,因为这可以通过正常的多维数据集访问来显示。要实现此目的,请在数据源视图中创建一个命名查询,该查询生成单个列和单个行。我将假设命名查询以及从中构建的维度命名为“Def”,并且从中构建的列和属性称为“定义”。它的值应该是您想要显示的非计算度量值,例如: G。一个空字符串。如果使用SQL Server作为关系源,则查询定义可能类似于

select '' as definition

无需将此与任何表格相关联。从中创建一个新维度,并使definition成为唯一属性。将其IsAggregatable属性设置为false。将此维度添加到多维数据集(在多维数据集编辑器中,选项卡“多维数据集结构”,在左下角,右键单击多维数据集并选择“添加多维数据集维度”)。无需在“维度用法”选项卡上设置任何关系。

部署解决方案,然后更改Definition属性的“默认成员”属性以使用单个成员。这是必要的,因为您将IsAggregatable属性设置为false。

最后,在多维数据集的计算脚本中添加以下内容:

SCOPE([Measures].[AHT]);
   [Def].[Definition].[] = 'Tot_wrk_tm/vol';
END SCOPE;

使用等于左边的成员的唯一名称;这可以从多维数据集的元素列表拖动到多维数据集编辑器/计算选项卡中的脚本。对于要记录的所有计算度量,重复这三行。

然后,您的用户可以将此属性拖到其有意义的报告中,并显示您配置的文本。当然,您必须确保对于任何计算度量的定义的每次更改,必须调整定义属性的代码。没有自动生成。