我是SSAS OLAP Cube的新手。我需要从单个表列创建3个度量。这是表格,
所以,我在Datasource View中使用Named查询创建了3个表。但是,它限制为3个措施创建3个度量组。有没有简单的方法来做到这一点。
答案 0 :(得分:1)
如果不知道在创建此多维数据集的数据库上创建视图的访问权限,有几种方法可以执行此操作。
选项1 - 在数据库中
优良作法是对要构建多维数据集的表进行视图,并将多维数据集指向这些视图而不是底层数据库表。如果在此表上创建视图,则可以在视图中针对上面指定的列创建三列。在数据源视图中,您将使用数据库中的视图而不是表格,因为此视图包含所有三列,您可以将它们放在一个度量值组中。
这意味着您的视图需要对WHERE子句进行过滤和数据透视。
选项2 - 在数据源视图中
如果无法在数据库中创建视图,则可以在一个命名查询中创建所有三列,从而在数据源视图中包含一个包含所有三列的对象。这将允许您使用这些列作为度量,方法与选项1中的视图允许的方式相同。
选项3 - 来自三个DSV对象的计算度量
您可以保持您的解决方案与当前完全一致,并有三个度量值组,每个度量值组中包含一个度量值。然后,您将每个度量设置为隐藏,这将隐藏用户的度量值组。然后,您在SSAS中创建三个计算的度量,每个度量指向其中一个度量,并将所有三个计算度量的显示文件夹设置为相同。当用户然后连接到您的多维数据集时,他们将只看到计算出的度量,并且它们将全部显示在同一文件夹中,使外观显示在同一度量值组中。
选项4 - 使用维度过滤计算的度量
如果您在DSV中的where子句中过滤的值被带入维度中的多维数据集,那么您可以从您创建的命名查询中仅创建一个度量。然后,您可以创建三个计算度量,并在每个度量的MDX中引用度量值组中的度量,并根据Dimension属性及其成员值进行过滤。然后,您可以将这些计算出的度量放在度量值组中,并将原始度量设置为隐藏。
选项5 - 按维度属性过滤
如果您有一个包含TxType的维度,则可以将度量的聚合函数设置为Count,然后将TxType属性从其所在的维度拖到报表上,以根据其成员过滤度量。
我希望有所帮助。