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 件の結果がなくても)。State の結果を 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 に答える