MDX 计算成员 - 来自任何订单行的总订单金额

Posted

技术标签:

【中文标题】MDX 计算成员 - 来自任何订单行的总订单金额【英文标题】:MDX Calculated Member - Total Order Amount from any Order Line 【发布时间】:2014-01-06 21:36:04 【问题描述】:

我需要一个我认为基本的立方体,但我很难找到解决方案。

我有一个Order Fact、一个Order Line Fact和一个Product Dimension

Order Fact包含订单的不同金额 Order Line Fact 包含特定订单行的不同金额,这是我们找到 Product Dimension 的关键所在

选择产品类别 em>时,我需要能够从订单线事实返回(因为只有此表有产品维度的链接) 与 Product Category 匹配的每个订单行的 Order Fact 总量。

例如:

Order 1 -> 100$
Order 1, Line 1 : Category FOO -> 30$
Order 1, Line 2 : Category BAR -> 20$
Order 1, Line 3 : Category FOO -> 50$

Order 2 -> 45$
Order 2, Line 1 : Category FOO -> 45$

如果我执行如下简单查询,应该返回 100 美元:

SELECT
  [Measures].[X] ON 0,
  [Product].[Category].&[BAR] ON 1
FROM Cube

查询 FOO 类别应该返回 145$ :

SELECT
  [Measures].[X] ON 0,
  [Product].[Category].&[FOO] ON 1
FROM Cube

所以我需要以某种方式将我的订单链接到产品,以将我的订单行链接到我的订单。我已将 Order AmountOrder Number 添加到每个 Order Line Fact 但我不知道如何将它们与计算的会员来满足我的需求。

【问题讨论】:

从我所处理的多维数据集的情况来看,Order/OrderLine 被展平为一个事实表,而多维数据集处理该事实的订单/客户/代表等级别的聚合。 您可以拥有订单事实和订单行事实,但只有在订单行中不存在该粒度级别的内容时,您才应该拥有订单事实。如果您有计算度量,则只需确保该计算中使用的度量与维度使用正确相关。 @TimothyWalters 是右行,立方体中的标题是聚合的 【参考方案1】:

有几种方法可以解决这个问题。无论哪种方式,我都没有看到您需要计算成员来满足您的需求。他们碰巧在 AdventureWorks 2012 多维立方体中有这个确切的场景。

他们有一个销售订单维度,其中包括订单号和订单行。他们将这些作为单独的层次结构,并将它们放在用户层次结构中。 然后,他们为金额(在订单行级别)创建了单个销售订单度量值组。他们将此与销售订单维度和产品维度相关联。这使您可以获取订单的总数或特定产品类别的总数。

您可以下载 AdventureWorks 2012 MD cube here 并亲自查看。

【讨论】:

你是对的,他们有互联网销售、经销商销售,他们制作了销售摘要并从事实(订单行级别)生成退化维度,以便能够为订单聚合他们的数据等级。但是,如果您希望 Adventure 作品从包含产品 X 的所有销售中返回总销售金额,那么如果不使用计算成员(如果可能的话……但我希望如此),就无法干净利落地做到这一点。因为简单地询问“Select TotalSale ON 0 FROM Cube WHERE Product.X”只会给出包含产品的行的金额,而不是销售金额。 将您的分析隔离到互联网销售。有一个包含订单和订单行的 Internet 销售订单详细信息维度。这与 Internet Sales 度量值组相关联。这与您正在寻找的内容相似。您可以使用互联网销售额事实来获取所有订单和产品类别的总销售额。 我很难解释...如果您参考我的示例数据。如果我执行“SELECT [Measures].[Sales Amount] ON 0, [Product].[Category].&[FOO] ON 1 FROM Cube”,它将返回 125$,因为链接到 FOO 类别的销售额是125 美元。但我想要的是 145 美元。从我的数据中复制 Adventure Works 的结构没有问题,但它不包含我需要获取包含指定产品的一个或多个行的所有订单的总订单销售额的度量。但我知道所有的工具都在那里,但我不知道如何获得它。 所以您想要一个计算度量来返回包含 Foo 类别产品的所有订单的总数? 是的,这就是我需要的。

以上是关于MDX 计算成员 - 来自任何订单行的总订单金额的主要内容,如果未能解决你的问题,请参考以下文章

MDX 计算的测量计数

如何将产品的订单金额汇总为一行

PayPal 网关已拒绝请求。购物车项目总金额与订单金额不匹配

ThinkPHP按月统计订单总金额

Rails 5:获取完整的订单数量

订单退款&重复支付需求疑问点归纳整理