Ssas 正确聚合SSA中一对多关系中的值

Ssas 正确聚合SSA中一对多关系中的值,ssas,olap,dimensional-modeling,Ssas,Olap,Dimensional Modeling,因此,我有一个装运的维度数据库: 一批货物包含许多包裹。 一个包裹包含许多费用 因为这是维度的,而且电荷是我最感兴趣的数据,所以我将3个表及其多对一关系展平为一个电荷事实表。这里是一个单一装运的快速快照,其中包含两个包裹,每个包裹重1磅 为了使包裹重量可查询,我需要将其向下推至装药粒度。这会导致聚合问题。1磅的包装重量适用于每个包装,装运应为2磅。我找不到一种方法以这种方式将重量聚合起来作为度量标准。我对SSAS和OLAP非常陌生,不知道下一步该怎么做。任何建议都将不胜感激。问题在于您对数据建

因此,我有一个装运的维度数据库:

一批货物包含许多包裹。 一个包裹包含许多费用

因为这是维度的,而且电荷是我最感兴趣的数据,所以我将3个表及其多对一关系展平为一个电荷事实表。这里是一个单一装运的快速快照,其中包含两个包裹,每个包裹重1磅


为了使包裹重量可查询,我需要将其向下推至装药粒度。这会导致聚合问题。1磅的包装重量适用于每个包装,装运应为2磅。我找不到一种方法以这种方式将重量聚合起来作为度量标准。我对SSAS和OLAP非常陌生,不知道下一步该怎么做。任何建议都将不胜感激。

问题在于您对数据建模的方式。您的(事实)表的最低粒度级别是“费用金额”…“包装重量”金额处于较高的粒度级别(包装级别)

你有两个选择

  • 在您的ETL中,您可以在每个包的不同费用金额中分配1磅(参见下面的屏幕截图)。这样,当您按装运或包装对该事实表进行切片时,您将分别看到2LB或1LB

  • 将“package weight”字段从这个事实表中拉出来,并将其放在粒度位于包级别的表中


  • 谢谢你的回答。我不太清楚第二点是如何通过多个相关事实表实现的,但我想这是下一次研究的内容。将1磅的费用金额“分解”的方法必须“由企业定义”。选择选项2可能更容易/更清晰,但这取决于您需要执行的分析类型。