在MDX中,计算给定商店的销售排名

时间:2010-10-18 09:39:44

标签: mdx business-intelligence pentaho

我有一个OLAP cube,其中包含每个商店的销售数量。

使用MDX,如何输出特定商店的排名?

我梦想下面的事情(不起作用),如果SomeShop是第8个最畅销的商店,它会返回8:

SELECT RANK( [Shop].CHILDREN, [Shop].[SomeShop]) from [Sales]

2 个答案:

答案 0 :(得分:0)

您应该查看msdn上的示例,最后一个示例将在此处使用。
像这样:

WITH MEMBER [Measures].[rank] AS RANK( [Shop].CurrentMember, [Shop].MEMBERS)
SELECT {[Measures].[rank], ...} on 0
ORDER([Shop].MEMBERS, [Measures].[rank], ASC) on 1
FROM [Sales]

答案 1 :(得分:0)

这是我找到的解决方案。
任何更好的解决方案将不胜感激。

WITH MEMBER [Measures].[rank] AS RANK(
      [Shop].CurrentMember,
      Order(
         [Shop].Members,
         [Measures].[salescount],
         BDESC
      ),
      [Measures].[salescount]
   )
SELECT Order(
         [Shop].Members,
         [Measures].[salescount],
         BDESC
      ).Item([SomeShop]) ON COLUMNS,
[Measures].[salescount] ON ROWS
FROM [Sales]