join - 事实和维度表之间的 MDX 查询
问题描述
我在 SSAS 中有一个多维数据集,它有不同的维度和一个事实表。其中一个维度是具有 [weight] 属性的 dimGoodsType。我有一个 factSoldItems 有 [price] 度量。现在我想计算这个总和(价格 * 重量)(每个已售商品都有它的 dimGoodsTypeId,因此它的重量与 GoodsType 相关)我如何在 mdx 中定义这个公式?
解决方案
您可以在多维数据集中定义另一个度量组,其中 dimGoodsType 作为数据源表,Weight 列作为度量,并像往常一样将其与 Goods Type 维度连接。然后,在Price
度量的属性选项卡中,您可以设置Measure Expression
为[Measures].[Price] * [Measures].[Weight]
。此计算将在任何聚合发生之前进行。主要问题是,如果您将直接计算定义为Price * Weight
,SSAS 将首先对当前单元格上下文中的所有权重和所有价格求和,然后才会执行乘法运算,但您希望始终在叶级并从那里求和。
另一种解决方案可能是创建view_factSoldItems
将计算列添加到Weighted Price
的位置price * weight
,然后将此度量添加到多维数据集。
推荐阅读
- apache-nifi - Nifi中的Json流文件转换?
- javascript - Socket.io:无法读取未定义的属性“发出”为什么我会收到此错误
- oracle - 加入 SQL 查询
- spring - 使用 Spring Boot 启动邮件和调度 cron 向用户发送电子邮件
- java - Jaspersoft 报告,“异常:线程“BAM subreports #1”中的 UncaughtExceptionHandler 抛出 java.lang.OutOfMemoryError”
- c# - 突然无法单击 asp.net Web 应用程序中的任何按钮?
- flutter - pedantic vs flutter_lint 使用哪个包,它们也可以组合吗?
- java - 多个版本的 kafka 客户端捆绑包在 OSGi KARAF 中不起作用
- c++ - 静态成员编译失败
- javascript - 如果动态内容没有空间,是否可以生成新的父元素?