日期:2014-05-16  浏览次数:20525 次

MDX 的排序
SELECT NON EMPTY {
        [Measures].[数量]
         } ON COLUMNS,
           { (
         [维度].[中国]
         [维度].[省分]
       [维度].[规模]
           ) }  ON ROWS 
          FROM [AD] 


结果显示

中国   省分   规模   数量
中国   广东    大    3
中国   广东    中    4
中国   广东     小    8
中国   广西     大    2
中国   广西     中   1
中国   广西     小   9


排序的字段顺序,, 分别分中国、省分、规模

------解决方案--------------------
如lz结果所示,啥都不干,排序的顺序就是hierarchy出现的顺序。
select [Measures].[Internet Sales Amount] on 0,
({[Date].[Calendar].[Calendar Year].[CY 2003],[Date].[Calendar].[Calendar Year].[CY 2004]}
,{[Product].[Category].[Category].[Bikes],[Product].[Category].[Category].[Clothing]},
[Sales Reason].[Sales Reason Type].[Sales Reason Type]) on 1
FROM [Adventure Works]




用ORDER ASC排序,只能在最里层那类排序,不会打乱Hierarchy。
select [Measures].[Internet Sales Amount] on 0,
ORDER (
({[Date].[Calendar].[Calendar Year].[CY 2003],[Date].[Calendar].[Calendar Year].[CY 2004]}
,{[Product].[Category].[Category].[Bikes],[Product].[Category].[Category].[Clothing]},
[Sales Reason].[Sales Reason Type].[Sales Reason Type])
,[Measures].[Internet Sales Amount],asc) on 1
FROM [Adventure Works]



用ORDER BASC排序,则会彻底打乱Hierarchy。
select [Measures].[Internet Sales Amount] on 0,
ORDER (
({[Date].[Calendar].[Calendar Year].[CY 2003],[Date].[Calendar].[Calendar Year].[CY 2004]}
,{[Product].[Category].[Category].[Bikes],[Product].[Category].[Category].[Clothing]},
[Sales Reason].[Sales Reason Type].[Sales Reason Type])
,[Measures].[Internet Sales Amount],basc) on 1
FROM [Adventure Works]