事实和维度之间的 MDX 查询 table
MDX Query between Fact and dimension table
我在 SSAS 中有一个多维数据集,它具有不同的维度和一个事实 table。其中一个维度是具有 [weight] 属性的 dimGoodsType。我有一个 factSoldItems,它有 [price] 度量。现在我想计算这个总和(价格 * 重量)(每个 solditem 都有它的 dimGoodsTypeId,所以它的重量与 GoodsType 相关)我如何在 mdx 中定义这个公式?
您可以在多维数据集中定义另一个度量值组,将 dimGoodsType 作为数据源 table,将 Weight 列作为度量值,并像往常一样将其与 Goods Type 维度连接。然后,在 Price
度量的属性选项卡中,您可以将 Measure Expression
设置为 [Measures].[Price] * [Measures].[Weight]
。此计算将在任何聚合发生之前进行。主要问题是,如果您将直接计算定义为 Price * Weight
,SSAS 将首先对当前单元格上下文中的所有权重和所有价格求和,然后才执行乘法,但您希望始终在叶级别上进行乘法运算并从那里求和。
另一种解决方案是创建 view_factSoldItems
,您可以在其中将计算列 Weighted Price
添加为 price * weight
,然后将此度量添加到多维数据集。
我在 SSAS 中有一个多维数据集,它具有不同的维度和一个事实 table。其中一个维度是具有 [weight] 属性的 dimGoodsType。我有一个 factSoldItems,它有 [price] 度量。现在我想计算这个总和(价格 * 重量)(每个 solditem 都有它的 dimGoodsTypeId,所以它的重量与 GoodsType 相关)我如何在 mdx 中定义这个公式?
您可以在多维数据集中定义另一个度量值组,将 dimGoodsType 作为数据源 table,将 Weight 列作为度量值,并像往常一样将其与 Goods Type 维度连接。然后,在 Price
度量的属性选项卡中,您可以将 Measure Expression
设置为 [Measures].[Price] * [Measures].[Weight]
。此计算将在任何聚合发生之前进行。主要问题是,如果您将直接计算定义为 Price * Weight
,SSAS 将首先对当前单元格上下文中的所有权重和所有价格求和,然后才执行乘法,但您希望始终在叶级别上进行乘法运算并从那里求和。
另一种解决方案是创建 view_factSoldItems
,您可以在其中将计算列 Weighted Price
添加为 price * weight
,然后将此度量添加到多维数据集。