2

我需要从立方体中获取每个州的前 50 个卖家名称

这就是我到目前为止所拥有的

SELECT NON EMPTY ( [DimGeo].[State].[State].ALLMEMBERS *
[Measures].[Total Sales]) ON COLUMNS,
NON EMPTY TOPCOUNT([DimEmployee].[Employee ID].[EmployeeID].MEMBERS,50,[Measures].[Total  Sales]) ON ROWS
FROM Sales

但这只会得到 50 个结果(即使一个州没有 50 个结果)。我想通过 50 个非空的最高值来限制状态结果。

示例:决赛桌将有 2500 个结果(每 50 个州的前 50 个经销商)。

有没有办法我可以做到这一点?

谢谢,

4

2 回答 2

4

我猜你正在寻找Generate()函数:

SELECT 
   NON EMPTY ( [Measures].[Total Sales]) ON COLUMNS, 
   NON EMPTY Generate( [DimGeo].[State].[State].ALLMEMBERS as s,
             TOPCOUNT(s.currentMember * [DimEmployee].[Employee ID].[EmployeeID].MEMBERS, 50, [Measures].[Total  Sales] )) 
ON ROWS FROM fdmdw
于 2012-06-29T00:40:04.583 回答
0

通过将状态移动到行级别,这对您有用吗?

SELECT NON EMPTY ( [Measures].[Total Sales]) ON COLUMNS,
NON EMPTY ([DimGeo].[State].[State].ALLMEMBERS  * TOPCOUNT([DimEmployee].[Employee ID].[EmployeeID].MEMBERS,50,[Measures].[Total  Sales])) ON ROWS
FROM fdmdw
于 2012-06-28T23:26:23.920 回答