将列显示到特定表中

时间:2013-09-24 13:45:12

标签: sql-server-2012 ssas

目标:
将ProductSubcateoryname列的数据显示在表DimProduct。

问题:
ProductSubcateoryname列的数据仅存在于表DimProductSubcategory中,但不存在于表DimProduct中。

如何通过使用Analysis服务启用使表ProductSubcateoryname的数据在表DimProduct中可用?

enter image description here

1 个答案:

答案 0 :(得分:0)

有几种可能性:

  • 您可以将子类别维度设置为引用的维度。为此,请确保在产品维度中将ProductSubcategoryKey作为 - 可能不可见 - 属性。然后转到立方体对象“维度用法”选项卡,对于每个度量值组,单击度量值组和子类别维度交叉处的矩形,并将关系类型设置为“引用”,选择中间维度“产品“,并选择子类别键作为双方的连接键。
  • 您可以使用数据源视图中的命名查询将子类别表集成到产品维度表中。然后,您只需设置一个产品维度,而不是单独的子类别维度。 您的查询将如下所示:
    SELECT p.ProductKey, p.ProductLabel, ... -- all DimProduct columns
          ,s.ProductSubcategoryLabel, ... -- all DimProductSubcategory columns
      FROM DimProduct p INNER JOIN DimProductSubcategory s
           ON p.DimProductSubcategorykey = s.DimProductSubcategoryKey
  • 当然,您还可以使用数据库端的视图将子类别表集成到产品表中 - 然后引用该视图而不是表。视图的定义与上面的查询的定义相同。只是命名查询是多维数据集定义的一部分而不影响关系数据库,而这种方法会在关系方面对此进行编码,并使DSV简单。在这种情况下,这种适应性取决于个人偏好或惯例。