2016-08-25 28 views
1

我用T-SQL在MDX for OLAP cube中創建了查詢,現在我需要按第二列對數據進行排序。該表默認按第一列排序。我怎樣才能按「收入」價值來分類?這是我的查詢:在MDX中使用ORDER函數和T-SQL

WITH 
    MEMBER [Measures].[DateFilter] AS 
    Cdate([Date.H_Date].CurrentMember.MemberValue) 
    MEMBER [Measures].[Average] AS 
    [Measures].[Price]/[Measures].[Covers SUM] 
SELECT 
    { 
    [Measures].[Average] 
    ,[Measures].[Covers SUM] 
    ,[Measures].[Price] 
    } 
    DIMENSION PROPERTIES 
    [MEMBER_UNIQUE_NAME] 
    ,[MEMBER_CAPTION] 
    ON COLUMNS 
,NON EMPTY 
    Filter 
    (
     NonEmpty 
     (
     CrossJoin 
     (
      [Date].[H_Date].[Month].ALLMEMBERS 
     ,[Waiter].[WaiterName].[WaiterName].ALLMEMBERS 
     ) 
     ,{ 
      [Measures].[Average] 
     ,[Measures].[Covers SUM] 
     ,[Measures].[Price] 
     } 
    ) 
    , 
      Dateadd 
      ("m" 
      ,-1 
      ,Dateadd 
      ("m" 
      ,Datediff 
       ("m" 
       ,Cdate(36526) 
       ,Now() 
      ) 
      ,Cdate(36526) 
      ) 
     ) 
     <= 
      [Measures].[DateFilter] 
     AND 
      [Measures].[DateFilter] 
     < 
      Dateadd 
      ("m" 
      ,0 
      ,Dateadd 
      ("m" 
      ,Datediff 
       ("m" 
       ,Cdate(36526) 
       ,Now() 
      ) 
      ,Cdate(36526) 
      ) 
     ) 
    ) 
    DIMENSION PROPERTIES 
    [MEMBER_UNIQUE_NAME] 
    ,[MEMBER_CAPTION] 
    ON ROWS 
FROM [YouCube]; 

順便說一下我按日期使用過濾功能,它有點複雜,我的查詢,所以我的「收入」值與添加排序功能的麻煩。

+0

哪個工具生成了你的腳本? Excel中? (包含的solve_orders是xl通常不會打擾的默認解決順序,但是鍋爐板尺寸屬性通常包含在xl腳本中)。或者它是來自剖析器 – whytheq

回答

1

只需加入ORDER即可。

ORDER(
Filter(NonEmpty(CROSSJOIN([Date].[H_Date].[Month].AllMembers, 
                [Waiter].[WaiterName].[WaiterName].AllMembers), 
                {[Measures].[Average],[Measures].[Covers SUM],[Measures].[Price]}), 
                DATEADD("m",-1,DATEADD("m",DATEDIFF("m",CDate(36526),NOW()),CDate(36526))) <= [Measures].[DateFilter] AND [Measures].[DateFilter] < DATEADD("m",0,DATEADD("m",DATEDIFF("m",CDate(36526),NOW()),CDate(36526)))) 
,[Measures].[Income]) 
+0

是的,它的工作原理。非常感謝你。我忘了在MDX中添加我是初學者的信息,並且名稱「收入」完全是「覆蓋SUM」的別名。謝謝。 – kenzolek