Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting MDX相当复杂的排序_Sorting_Ssas_Mdx - Fatal编程技术网

Sorting MDX相当复杂的排序

Sorting MDX相当复杂的排序,sorting,ssas,mdx,Sorting,Ssas,Mdx,我找不到方法,如何对我的查询进行排序,这是一个简单的查询: SELECT {[Measures].[IB]} ON COLUMNS, {[Dim_Product_Models_new].[PLA].members } * {[Dim Dates_new].[Date Full].&[2013-02-01]:[Dim Dates_new].[Date Full].&[2014-01-01]} ON ROWS FRO

我找不到方法,如何对我的查询进行排序,这是一个简单的查询:

SELECT {[Measures].[IB]}
       ON COLUMNS,
       {[Dim_Product_Models_new].[PLA].members }  *   
       {[Dim Dates_new].[Date Full].&[2013-02-01]:[Dim Dates_new].[Date Full].&[2014-01-01]}
       ON ROWS
  FROM [cub_dashboard_spares]
我的想法是,我会得到一个12个月内6个PLA的结果(总共72行),但它是按PLA的字母顺序排序的

我需要的是,根据上个月的测量结果(本例中为2014-01-01)对PLA进行排序

是否有任何方法来执行此任务,以保持分组(PLA,日期从2013-02到2013-12),但只有我的PLA的顺序不同。(上月指标最高的解放军将是第一名,以此类推)


非常感谢您提供的任何帮助

交叉连接上的顺序函数应保留第一个集合的初始顺序,因此颠倒元组的顺序即可:

 SELECT 
  { 
    [Measures].[IB] 
  } ON COLUMNS, 
  order( 
{[Dim Dates_new].[Date Full].&[2013-02-01]:[Dim Dates_new].[Date Full].&[2014-01-01]} * 
{[Dim_Product_Models_new].[PLA].members } , 
[Measures].[IB], 
desc 
) ON ROWS 
FROM [cub_dashboard_spares]
如果要保留列标签的外观顺序,可以从AW多维数据集中使用以下示例中的generate函数:

SELECT 
  {[Measures].[Internet Sales Amount]} ON 0
 ,Generate
  (
    {[Customer].[Country].&[Australia]:[Customer].[Country].&[United Kingdom]}
   ,(
      Order
      (
        [Date].[Calendar Year].[Calendar Year].MEMBERS
       ,(
          [Customer].[Country].CurrentMember
         ,[Measures].[Internet Sales Amount]
        )
       ,DESC
      )
     ,[Customer].[Country].CurrentMember
    )
  ) ON 1
FROM [Adventure Works];

Philip,

只需使用
Order
函数将排序集放在行上即可。如果要在每个层次结构级别内进行排序,但仍希望在子级之前获得父级(如单属性成员之前的所有),则此函数的第三个参数为
DESC
;如果要在所有级别之间进行排序,则此参数为
BDESC

SELECT {[Measures].[IB]}
       ON COLUMNS,
       Order({[Dim_Product_Models_new].[PLA].members },
            ([Measures].[IB], [Dim Dates_new].[Date Full].&[2014-01-01]),
            DESC)
       *   
       {[Dim Dates_new].[Date Full].&[2013-02-01]:[Dim Dates_new].[Date Full].&[2014-01-01]}
       ON ROWS
  FROM [cub_dashboard_spares]