SSAS - 关系/粒度

jho*_*owe 5 ssas ssas-2012

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

我在 Productionorderid 上的两个表之间创建了一个代理键链接。一旦我将产品 ID(来自 Productiondetailsdim)添加到数据透视表,它就会显示实际数量(来自产品订单度量组),并且我无法合并两个度量组中的数量。

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

Gre*_*way 4

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

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

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