2014-01-06 90 views
0

我有一个我发现基本的立方体的需求,但我很难找到解决方案。MDX计算的成员 - 来自任何订单行的总订单金额

我有一个订单情况,一个订购专线事实产品尺寸

  • 订购事实包含
  • 订购专线事实包含了订单的特定线路上的不同量的顺序不同量,这是我们找到的关键产品尺寸

当选择产品类别,我需要能够从订购专线事实返回(因为只有此表有链接到产品尺寸订单事实的总金额对每个订单行有产品类别匹配。

例如:

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 

因此,我需要以某种方式将我的订单链接到产品,并将我的订单行链接到我的订单。我已经添加了订单金额订单号每个订购专线事实,但我迷路了,我怎么可以使用他们计算的成员来满足我的需要。

+1

根据我所看到的与我工作的立方体相比,Order/OrderLine被展平为一个事实表,而Cube处理关于该事实的订单/客户/代表等级的聚合。 –

+0

您可以拥有订单事实和订单行的事实,但只有在订单行中不存在的某个粒度级别存在的情况下才应该具有订单事实。如果您有计算出的度量值,则只需确保在该计算中使用的度量在维度使用情况中正确关联。 – mmarie

+0

@TimothyWalters是正确的行和标题的立方体汇总 – Justin

回答

0

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

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

您可以下载AdventureWorks 2012 MD多维数据集here,并自己看看。

+0

你是对的,他们有互联网销售,分销商销售,他们做了一个销售总结和生成从事实(这是订单行级)的退化维度能够聚合他们的订单级别的数据。但是,如果您希望Adventure作品从包含产品X的所有销售中返回总销售额,则无法使用计算成员(如果甚至可能......但我希望如此)干净利落地完成此操作。因为只需询问“选择TotalSale ON 0 FROM立方体WHERE Product.X”将只给出包含产品的行数量而不是销售数量。 – Nick

+0

将您的分析分离为Internet销售。存在包含订单和订单行的Internet销售订单详细信息维度。这与互联网销售措施组有关。这与您正在查找的内容类似。您可以使用互联网销售额事实来获得所有订单和产品类别的总销售额。 – mmarie

+0

我很难解释...如果您参考我的示例数据。如果我执行“SELECT [Measures]。[Sales Amount] ON 0,[Product]。[Category]。&[FOO] ON 1 FROM Cube”,它将返回125 $,因为链接到FOO类别的销售金额是125 $。但是我想要的是145美元。我从我的数据中再现Adventure Works的结构没有任何问题,但它不包含我需要获得包含指定产品的一行或多行的所有订单的总订单销售额的度量。但我知道所有的工具都在那里,但我无法弄清楚如何得到它。 – Nick