• MDX Order排序


    Order基础用法

    Numeric expression syntax
    Order(Set_ExpressionNumeric_Expression 
    [ , { ASC | DESC | BASC | BDESC } ] )

    String expression syntax
    Order(Set_ExpressionString_Expression 
    [ , { ASC | DESC | BASC | BDESC } ] )

    例一:对数据排序

    select [Measures].[Unit Amount] on 0,
    order([Dim No Of Horses].[Horses Group Code].[Horses Group Code], --Set_Expression
    [Measures].[Unit Amount], --Numeric_Expression 
    asc ) on 1
    from PNLDB_Cube

    例二:对维度排序

    SELECT
    [Measures].[Unit Amount HK] ON COLUMNS,
    Order(
      {[Code Race Date].[Month Number Of Season].[Month Number Of Season]}
      ,StrToValue([Code Race Date].[Month Number Of Season].currentmember.name), --StrToValue函数将String转换成Int
        BASC
    ) ON ROWS
    from [PNLDB_Cube];

    Order二次排序:

    with

    member Measures.CurYearProfit as
     (iif("1"='0',[Measures].[Trading Profit HK],[Measures].[Trading Profit]),StrToMember('[Code Race Date].[Season Year].&['+"2009"+']'))
    member Measures.CurYearUnitAmount as
     (iif("1"='0',[Measures].[Unit Amount HK],[Measures].[Unit Amount]),StrToMember('[Code Race Date].[Season Year].&['+"2009"+']'))

    member Measures.CurYearNoOfRaces as
     ([Measures].[NoOfRaces],StrToMember('[Code Race Date].[Season Year].&['+"2009"+']'))

    SET OrderedTrack AS Order
       ([Code Track].[Track Name].[Track Name],
       iif(Measures.CurYearUnitAmount>0,Measures.CurYearProfit/Measures.CurYearUnitAmount+1,0),  asc)
    member measures.roi as
    iif(Measures.CurYearUnitAmount>0,Measures.CurYearProfit/Measures.CurYearUnitAmount+1,null)
    select {measures.roi,

     measures.CurYearProfit,measures.CurYearUnitAmount
     ,Measures.CurYearNoOfRaces} on 0,
    NON EMPTY{
    Order(OrderedTrack---------------------------------------------------------------------------------已用Order排序的Set
    ,iif(Measures.CurYearNoOfRaces>0,1,0), bdesc)-----------------------------------------------------再经Order的二次排序
    } on 1
    FROM [PNLDB_Cube]

  • 相关阅读:
    华为牛人在华为工作十年的感悟!(有点长)(转载)
    C# 10进制与16进制相互转换
    Linux必学的60个命令
    项目管理
    网络数据加密需要解决三个问题:
    DES加密/解密的应用
    一个比较牛的加密算法
    开发完成后总结心得(团队会议稿) (转载)
    相当于序列化与反序列化,但是不用借助外部文件
    软件开发设计常识
  • 原文地址:https://www.cnblogs.com/Impulse/p/4610453.html
Copyright © 2020-2023  润新知