2

我是 MDX 的新手,想知道是否可以创建一个查询,在两个不同的轴上显示每年和每月的销售额,即使销售日期是一个维度。

就像是:

Sales    |   2010    |    2011    |   Diff   
---------+-----------+------------+----------
Jan      |  1234,00  |  2345,10   |  +80%
Feb      |    ...
...

编辑:在标签中添加了 mondrian,因为似乎有其他 MDX 实现在 mondrian 中不可用的可能性。

4

2 回答 2

3

是的,解决方案是围绕计算成员

让我们想象一下您的初始 MDX 看起来像:

Select
 { [Calendar].[Year].[2010],[Calendar].[Year].[2011] } on 0,
 { [Calendar].[Months].members } on 1
from [Cube]

您可以在 [Year] 层次结构中添加计算成员:

With
 Member [Calendar].[Year].[Diff] as [Calendar].[Year].[2011] / [Calendar].[Year].[2010]-1, FORMAT_STRING='percent'
Select
 { [Calendar].[Year].[2010],[Calendar].[Year].[2011], [Calendar].[Year].[Diff] } on 0,
 { [Calendar].[Months].members } on 1
from [Cube]

您还可以通过使用实用程序或统计维度来添加更优雅、更灵活的解决方案。这些维度而不是保存数据定义了转换/函数,并且输出不会完全是您正在寻找的那个,但这是一个有趣的概念。

于 2011-07-23T07:53:15.030 回答
1

这个问题可以用 ParallelPeriod 函数来解决:

WITH MEMBER [Measures].[Einheiten Vorjahr] 
  AS '(ParallelPeriod([Year],1),
      [Measures].[quantity])'
SELECT {[Measures].[quantity],[Measures].[Einheiten Vorjahr]} ON COLUMNS,
       [date].[2010].children on rows
FROM salesorderitems
于 2011-07-26T16:41:43.007 回答