0

我是分析服务/性能点的初学者,我需要一些帮助来创建图表。

我正在使用Contoso 示例数据库

我找到了一个帮助我创建下图的教程:

X 轴为月份,Y 轴为销售额,我显示了 2008 年和 2009 年的数据

所以通过这张图,我在 X 轴上得到了从 2008 年 1 月到 2009 年 12 月的月份。(我使用来自 [日期].[日历月] 的数据)问题是我需要逐月比较不同年份的数据。因此,在 X 轴上,无论年份信息如何,我都需要显示从 1 月到 12 月的月份。

我尝试使用 MDX 查询和parrallelperiod函数,但无法显示我需要的内容。我想我需要按月份的名称对数据进行分组,所以我尝试像在 sql 中一样使用“group by”,但没有成功。也许我需要多维数据集中的更多数据?像月份列表(没有年份关系)

我不确定要采取的方向,任何帮助将不胜感激。如果您需要,我可以提供更多详细信息。

(看起来冒险作品的尺寸非常相似,所以如果有人用这个立方体做同样的事情,那也很棒。)

[编辑]

这是自动生成的查询:

SELECT
HIERARCHIZE( { [Date].[Calendar Month].&[200901], [Date].[Calendar Month].&[200902], [Date].[Calendar Month].&[200903], [Date].[Calendar Month].&[200904], [Date].[Calendar Month].&[200905], [Date].[Calendar Month].&[200906], [Date].[Calendar Month].&[200907], [Date].[Calendar Month].&[200908], [Date].[Calendar Month].&[200909], [Date].[Calendar Month].&[200910], [Date].[Calendar Month].&[200911], [Date].[Calendar Month].&[200912], [Date].[Calendar Month].&[200812], [Date].[Calendar Month].&[200811], [Date].[Calendar Month].&[200810], [Date].[Calendar Month].&[200809], [Date].[Calendar Month].&[200808], [Date].[Calendar Month].&[200807], [Date].[Calendar Month].&[200806], [Date].[Calendar Month].&[200805], [Date].[Calendar Month].&[200804], [Date].[Calendar Month].&[200803], [Date].[Calendar Month].&[200802], [Date].[Calendar Month].&[200801] } )
ON COLUMNS,

HIERARCHIZE( { [Date].[Calendar Year].&[2008], [Date].[Calendar Year].&[2009] } )
ON ROWS

FROM [Sales]

WHERE ( [Measures].[Sales Amount] )

CELL PROPERTIES VALUE, FORMATTED_VALUE, CELL_ORDINAL, FONT_FLAGS, FORE_COLOR, BACK_COLOR

[/编辑]

谢谢你。

4

2 回答 2

1

更改时间维度属性之间的属性关系如下:日期->月份->年份,然后您可以在过滤器中选择任何年份,X 轴中的月份将对应年份。如果您在 X 轴上有 May 并且没有选择任何年份(默认情况下是 All member),那么您将累积所有 May,但是如果您选择 Year 2010,则向下您将有 May 2010,如果您在过滤器中选择 Year 2011 in X 轴你会 2011 年 5 月。

于 2012-07-02T07:45:41.320 回答
1

如果你不想改变时间维度属性之间的关系,你可以喜欢这个:

WITH SET [months_2008_2009] AS { [Date].[Calendar Year].&[2008].Children, [Date].[Calendar Year].&[2009].Children }

MEMBER [Date].[Calendar Month].[January]  AS Aggregate(Filter([months_2008_2009] , [Date].CurrenMember.MemberValue = 'the member value for January'))
MEMBER [Date].[Calendar Month].[February] AS Aggregate(Filter([months_2008_2009] , [Date].CurrenMember.MemberValue = 'the member value for February'))

SELECT {[Date].[Calendar Month].[January], [Date].[Calendar Month].[February]} ON COLUMNS
FROM [Sales]
WHERE ( [Measures].[Sales Amount] )

[months_2008_2009]应该有 2008 年和 2009 年的所有月份。

[Date].[Calendar Month].[January]是一个计算成员,它将是 和 的[Date].[Calendar Month].&[200801]聚合[Date].[Calendar Month].&[200901]。您必须为其他月份添加其他成员。

我假设 than[Calendar Year][Calendar Month]是属于同一层次结构的两个级别。

于 2012-07-02T20:46:58.537 回答