MDX Top 10基于专栏

时间:2014-05-05 07:32:53

标签: sql mdx pentaho

我目前正在使用pentaho中的MDX。 目前我面临的问题是无法根据一项措施获得前10名。

即,我想根据当前年度销售量编写MDX查询以查找前10名客户,并且还需要该客户的上一年销售额。

我的问题是MDX查询总结了过去和当年的销售量并列出了前10名。

如何根据当前年度专栏获得前10名?

例如,

Customer   Current Year   Previous Year
A           100           200
B           150           125
C           200           -

预期结果:

 Customer   Current Year   Previous Year
  C           200           -    
  B           150           125
  A           100           200

请帮帮我。

1 个答案:

答案 0 :(得分:0)

Topcount函数有3个参数,一个Set,要返回的项目数和一个数字表达式。

假设您有[客户]。成员在行上,已定义两个[时间]维度成员和[度量]。[销售]作为衡量标准,您可以使用

Select
  TopCount( [Customer].Members, 3, ( [Measures].[Sales], [Time].[Current Year]) ) on Rows,
  { [Time].[Current Year], [Time].[Previous Year] } on Columns
From [My Cube]
Where [Measures].[Sales]

TopCount将根据排名

返回前3位客户
([Measures].[Sales], [Time].[Current Year])

如果您没有将此元组指定为数字表达式,则可以按整体[Measures]。[Sales]值获得排名。

文档:http://technet.microsoft.com/en-us/library/ms144792.aspx