我最近收到了一条创建查询的请求,该查询按周收入返回前100名客户。我可以很明显地轻松返回前100位客户,但是当我添加周属性时,我的查询超时。我只是想知道是否有一些人遇到了这个或者能够产生类似的查询?
我的查询在没有周存在的情况下有效。 :
SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS,
NON EMPTY TopCount ( { ([Customer].[Customer Id].[Customer Id].ALLMEMBERS * [Customer].[Name].[Name].ALLMEMBERS ) }, 100, [Measures].[Revenue]) ON ROWS
FROM [DW]
我对周的询问只是完全超时。 :
SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS,
NON EMPTY TopCount ( { ([Customer].[Customer Id].[Customer Id].ALLMEMBERS * [Customer].[Name].[Name].ALLMEMBERS * [Date Link].[Week].[Week].ALLMEMBERS ) }, 100, [Measures].[Revenue]) ON ROWS
FROM [DW]
答案 0 :(得分:1)
这不会给你排名前100位的客户以及他们排名第一的那一周吗?因此,客户A可能在第一周排名第一,第二周排名第五,依此类推,但你总共得到100行而不是每周100张?
尝试类似
的内容SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS,
NON EMPTY
{
[Date Link].[Week].[Week].ALLMEMBERS *
{
TopCount ( { ([Customer].[Customer Id].[Customer Id].ALLMEMBERS * [Customer].[Name].[Name].ALLMEMBERS ) }, 100, [Measures].[Revenue])
}
}
ON ROWS
FROM [DW]
我认为你可能需要使用GENERATE代替*与周成员,不记得并试图做到这一点;)