【问题标题】:SSAS - relationship/granularitySSAS - 关系/粒度
【发布时间】:2015-12-22 05:30:41
【问题描述】:

我有 2 个事实表,每个表都有一个度量组,生产和生产订单。生产具有较低粒度的生产信息(在组件级别)生产订单具有较高级别的信息(具有标题数量等的订单级别)。

我在 productionorderid 的两个表之间创建了一个代理键链接。一旦我将 Prod ID(来自 productiondetailsdim)添加到数据透视表,它就会删除实际数量(来自 prod order 度量组),并且我无法合并两个度量组中的 qty。

如何设计两者之间的正确关系?请看我的暗淡使用图。 Production Details 是连接两个事实表的 dim,此时 DimProductionDetails 与 Production 存在事实关系。我不确定与生产订单应该是什么关系(目前是多对多)。

请看两个表之间的示例数据:

我必须能够复制这种行为:

【问题讨论】:

    标签: ssas ssas-2012


    【解决方案1】:

    您是否希望在每个产品旁边重复来自产品订单度量组的完整实际数量?如果是这样,多对多关系是正确的。我怀疑一旦我解释了多对多的工作原理,您就会发现问题。

    当您从生产详细信息维度中按产品从产品订单度量组中分割完整的实际数量时,它会在公共维度上的两个度量组之间进行运行时连接。例如,如果订单 245295 的日期为 2015 年 1 月 1 日,而订单 245295 的生产详细信息的日期为 2015 年 1 月 8 日,则运行时联接将丢失该订单的行,实际数量将显示为 null .因此,比较两个度量组上使用的所有维度,并确保同一订单的所有行对于这些常见维度具有相同的维度键。例如,如果日期不同,则在 DSV 中创建一个命名查询,该查询仅从生产事实表中选择与订单事实表匹配的维度列。然后从该命名查询创建一个新的度量值组,并将新的度量值组用作多对多维度中的中间度量值组。 (维度使用选项卡中当前的多对多单元格应该显示新度量值组的名称,而不是现有的生产度量值组。)

    编辑:如果您希望实际数量度量仅在您处于订单级别时显示并且在产品级别为空,请尝试以下操作。将多对多关系更改为常规关系,在您选择事实表如何连接到维度的对话框中,将维度属性更改为 ProductionOrder_SK(这不是维度的键),然后在事实表。然后左键单击 Production Order 度量组并转到 Properties 窗口并将 IgnoreUnrelatedRelationships 设置为 false。这样,按工作中心或按生产详细信息维度中低于粒度的属性对实际数量进行切片将显示为空。

    【讨论】:

    • 您好,感谢您的回复...在数据透视表中分析时,当我选择行级别组件/数量时,如果我想选择实际数量(标题级别),我不希望它是为每一行(重复)聚合我只是希望它在订单级别聚合。这就是我所坚持的。
    • 我明白了。编辑了我的答案以反映这一点
    • 我编辑了原始帖子,并举了一个例子。我必须能够同时显示行级别和标题级别的数量。
    • 我无法从您的单行示例中看出您希望它如何表现?每个产品的实际数量是否应该重复?
    • 是的,它应该为每个产品重复感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多