2016-08-25 1 views
1

T-SQL을 사용하여 OLAP 큐브 용 MDX에서 쿼리를 만들었으므로 두 번째 열로 정렬 데이터가 필요합니다. 기본 테이블은 첫 번째 열에 따라 정렬됩니다. "소득"값으로 어떻게 분류 할 수 있습니까? T-SQL을 사용하여 MDX에서 ORDER 함수 사용

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]; 

가 Btw은 내가 날짜에 의해 필터 기능을 사용하고 작은 그래서 나는 "소득"값으로 추가 정렬 기능에 문제가 내 쿼리를 복잡 : 이것은 내 쿼리입니다.

+0

귀하의 스크립트를 생성 한 도구는 무엇입니까? 뛰어나다? (포함 된 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에서 정보를 추가하는 것을 잊어 버렸습니다. 이름 "Income"은 "Covers SUM"의 별칭입니다. 고마워. – kenzolek

관련 문제