ORDER BY最后一栏

时间:2014-07-08 16:04:54

标签: ssas mdx

我有这个:

SELECT
    NONEMPTY(
        [Date].[Calendar].[Calendar Year].MEMBERS
    )
    *
    [Measures].[Internet Sales Amount] on 0,
    ORDER(
        [Customer].[Customer Geography].[State-Province].MEMBERS
        ,[Measures].[Internet Sales Amount]
        ,BDESC) 
     on 1
from [Adventure Works]

按最后日期列排序降序的最有效方法是什么 - 这应该是动态的,以便在我们结束月末时它仍然有效。

2 个答案:

答案 0 :(得分:1)

我会用

ORDER(
        [Customer].[Customer Geography].[State-Province].MEMBERS
        ,([Measures].[Internet Sales Amount]
          ,Tail([Date].[Calendar].[Calendar Year]).Item(0).Item(0)
         )
        ,BDESC) 

并假设添加的术语Tail([Date].[Calendar].[Calendar Year]).Item(0).Item(0)可以由Analysis Services计算,只需检查时间维度,并且不需要任何动态上下文,因此应该很快。

答案 1 :(得分:1)

如果您想要一个独立于列内容的表达式,可以使用:

ORDER([Customer].[Customer Geography].[State-Province].MEMBERS
      ,Tail(Axis(0)).item(0)
      ,BDESC)