2012-07-26 72 views
3

有无论如何,我们可以通过MDX中的层次结构而不是顶层获得前10位。我想编写一个MDX查询,它在层次结构中的每个级别都排名前10位。请让我知道是否有可能。MDX在几个层次上查询排名前10位

层次看起来像下面:

  • 地区(获得前10名)
    • 国家(获得前10名)
      • 美国(获得前10名)
        • 城市(获得顶部10)
          • 等等......
+0

您是否想要进入排名前10位的前10位国家? – Benoit 2012-07-26 19:04:11

回答

2

如果你想在一个水平前10名可以使用

TopCount([your dimension].[Regions].Members, 10, 'your measure') 
TopCount([your dimension].[Countries].Members, 10, 'your measure') 
... 

如果你想与他们的前10名获得前10个地区国家...您可以使用DrilldownLevelTop

DrilldownLevelTop(TopCount([your dimension].[Regions].Members, 10, 'your measure'), 10,, 'your measure') 

如果您想要获得其他级别的成员,则必须在前面的表达式中添加其他DrilldownLevelTop。

+0

非常感谢Benoit。它为我工作。 – user346514 2012-07-30 02:46:40

+0

该查询在Sql服务器中正常工作,但是如果我在性能点中使用相同的查询,则会收到错误消息“异常类型:InvalidOperationException异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出现错误。在maxJsonLength属性上设置的值。“对此有任何想法。我改变了web.config文件,但没有运气。 – user346514 2012-07-30 17:30:45

+0

@ user346514您应该更改''maxJsonLength''属性。 (我不知道该怎么做) – Benoit 2012-08-10 20:57:50