2012-06-28 30 views
2

我需要從立方體得到每個國家的前50名賣家名獲取頂級最高的結果從一組與MDX

這是我迄今爲止

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

我猜你正在尋找的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 
+0

這正是我正在尋找的東西,這對我來說非常有幫助! – user1112251

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 
+0

我嘗試過這一點,但它只是讓我在所有國家的前50名的結果,而不是每50個強銷售州。 – user1112251