2009-05-12 4 views
0

OLAP 큐브에서 특정 아티클을 검색하기 위해 MDX 쿼리를 작성했습니다.MDX 쿼리에서 정렬 및 페이징 (MS Analysis Services)

SELECT NON EMPTY 
(
    Hierarchize 
    (
     { 
      DrilldownLevel 
      (
       { 
        [T DAT Article].[Ar ID].[All] 
       } 
      ) 
     }  
    ) 

) 

DIMENSION PROPERTIES PARENT_UNIQUE_NAME, 
[T DAT Article].[Ar ID].[Ar ID].[Ar Key], 
[T DAT Article].[Ar ID].[Ar ID].[Ar LongName] 
ON COLUMNS 
FROM [Catalog_2009] 

WHERE 
(
    [T DAT Structure].[St St ID FK].&[193066], -- specific article-category node 
    [T DAT Firm].[Fi ID].&[86] -- specific manufacturer 
) 

CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS 

가 지금은 페이징 및 정렬을 지원하기 위해이 쿼리를 강화하려는 : 기본적으로 특정 제조업체가 생산하는 특정 기사 - 카테고리 노드 아래 기사를 반환합니다. I는 공급 수 의미

  • 페이지 인덱스 (같은 0) (30 등)
  • 페이지 크기 (AR LongName 등)
  • 정렬 컬럼 (오름 등)
  • 정렬 방향

어떤 접근 방식을 취해야합니까? 나는 Subsetorder 절을 보았다. 하지만 기본적으로 결과는 질의의 '계층화 된'부분에서 결과를 제한하여 최종 결과 대신 계층 구조를 잘라냅니다.

아무에게도 페이징을 받고 작업을 정렬하는 방법에 대한 힌트를 줄 수 있습니까?

답변

1

정렬은 MDX에서 고통이며 적어도 내가 그것에 대해 항상 느낀 점입니다. 쿼리의 행이 하나이고 열이 하나 인 경우 쿼리가 훨씬 단순 해집니다.

ORDER 키워드는 집합에 적용 할 수 있으며 정렬 할 숫자를 지정하고 ASC 또는 DESC와 함께 사용할 수있는 방법을 알려주기 만하면됩니다.

BASC 또는 BDESC도 지정할 수 있으므로 ASC 또는 DESC 문제가 혼란 스럽습니다. "B"는 "나누기"를 의미하며 행 (또는 열)을 계층 구조 그룹 내에서 정렬할지 여부를 지정하거나 정렬 할 때 계층 구조를 완전히 중단하고 행을 완전히 재정렬하려고합니다.

여기 이것은 당신이 총 판매 값의 오름차순으로 모든 달을 나열 할 의미 간단한 예를

ORDER({[Time].[Month].members}, [Measures].[Gross Sales], BASC) 

입니다. 계층 구조를 위반하여 월이 상위 연도 내에 그룹화되지 않고 정렬 작업으로 완전히 혼합 될 수 있습니다.

+0

이것은 좋은 대답입니다 ... 페이징은 어떻게됩니까? –