2011-02-23 2 views
0

현재 유연한보고 기능을 제공하기 위해 SQL 분석 서버에 연결하는 프런트 엔드 관리자 정보 도구를 실행합니다. 본질적으로 프런트 엔드는 Analysis Services에서 실행되는 MDX를 작성하고 결과를 테이블로 prettifies.Analysis Server 2000 및 2008의 비 NON EMPTY 동작 차이

현재 SQL 2000에서 SQL 2008로 업그레이드 중이며 MDX에서 NON EMPTY를 사용하는 데 차이가 있습니다.

이 질문은 행에 대한 측정 멤버 이름의 목록을 반환 분석 서버 2000에서 실행

SELECT NON EMPTY {[Measures].allMembers} ON ROWS, NON EMPTY {} ON COLUMNS FROM Sales 

에서 MDX 쿼리는하지만, 분석 서버에서 실행할 때 2008 아무 것도 반환하지 않습니다.

MDX를 살펴보면 2008 년이 예상대로 작동하고 있으며 2000 년이 잘못되었다고 생각하지만이 MDX가 실행되는 경우 아무 것도 표시하지 않기 때문에 프런트 엔드가 손상된 것 같습니다 당신이 본 후에 어떤 칼럼을 끌기를 원하지만 아무것도 보여주지 않으면, 그들은 이것을 할 수 없습니다.)

그래서 차이점이 있습니다. 2008 년에 수정 된 2000 년의 '버그'였습니까? 또는 반환되는 것에 영향을 줄 수있는 어딘가에 구성 옵션이 있습니까? (본질적으로 나는 이것을 극복하기 위해 프론트 엔드를 변경하는 것을 피하고자합니다!)

고마워.

답변

0

어제처럼 느껴지지 않는 SSAS 2000을 사용한 지 오래되었습니다. 나는이 같은 급격한 변화를 생각해 낼 수 없다. 그러나 열의 NON EMPTY는 회원에게만 쿼리를 보내는 것이 목적이라면 가짜입니다. (이것은 완벽하게 유효합니다. 메타 데이터 개체를 사용하는 것보다 UI가 더 강력합니다.)

NON EMPTY는 암시 적 슬라이서의 영향을받으며 큐브 구조가 어딘가에서 변경되었을 수 있습니다. 모든 측정 값이 아닌 차원의 최상위/기본 멤버가 모든 NULL 셀 값을 제공하면 측정 값이 드롭됩니다.

당신이 SQL 서버 관리 콘솔에서

SELECT NON EMPTY {[Measures].allMembers} ON COLUMNS FROM Sales 

SELECT {[Measures].allMembers} ON COLUMNS FROM Sales 

과 같은 쿼리를 실행하자. 가치를 얻습니까?

그런 경우 사용자와 동일한 환경 (예 : 앱의 디버그 버전)에서 실행 해보십시오. 보안 필터와 기본 멤버 설정은 올바르게 필터링되는 NULL 행을 유도 할 수있는 두 가지 요소입니다.