我有一个OLAP 多维数据集,其中包含我每家商店的销售额。
使用MDX,如何输出给定商店的排名?
我梦想着像下面这样的东西(不起作用),如果 SomeShop 是第 8 最畅销的商店,它将返回 8:
SELECT RANK( [Shop].CHILDREN, [Shop].[SomeShop]) from [Sales]
我有一个OLAP 多维数据集,其中包含我每家商店的销售额。
使用MDX,如何输出给定商店的排名?
我梦想着像下面这样的东西(不起作用),如果 SomeShop 是第 8 最畅销的商店,它将返回 8:
SELECT RANK( [Shop].CHILDREN, [Shop].[SomeShop]) from [Sales]
您应该查看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]
这是我找到的解决方案。
任何更好的解决方案将不胜感激。
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]