2014-04-16 1 views
1

현재 MDX 코드를 찾고 있습니다. 여기서 NON EMPTY은 NULL 값을 필터링 할 수 없습니다. 이것은 어제의 모든 계정에 대해 실제로 DEMO_KPI를 나열합니다. 그 날에는 모든 계정이 활성화되어 있지 않으므로 결과 집합은 매우 작아야합니다. MDX은 어제를 찾기 위해 사전 정의 된 세트를 사용합니다. 나는 어제를 찾기위한 복잡성이 과거의 설계에 의한 것이라고 생각한다. 나는이 쿼리가 NULL을 반환하는 이유를 알아 내려고하는 초심자 MDX 개발자이며 여전히 수수께끼입니다. 결과 집합 때문에 모든 널 (null) 반환 및 클라이언트 성능에 영향을 미치는의 스파 스 될 것NULL을 필터링하지 않는 비어있는 MDX 쿼리

WITH 
     SET [base_yesterday_1] AS 
     FILTER(
     [Date].[Date].[Date].MEMBERS, 
     [Date].[Date].CURRENTMEMBER.NEXTMEMBER.PROPERTIES("CALENDAR DATE NO PADDING")=format(NOW(), 'M/d/yyyy') 
     ) 
     SET [cyesterday_1] AS 
     EXISTS(
     [Date].[Calendar].[Date].MEMBERS, 
     [base_yesterday_1] 
     ).ITEM(0).ITEM(0) 
     SET [yesterday_1] AS 
     {cyesterday_1.ITEM(0).ITEM(0)} 
    SELECT 
     NON EMPTY { [yesterday_1] } ON COLUMNS, 
     NON EMPTY { [Account].[Account ID].[All].CHILDREN } ON ROWS 
    FROM [DEMO] 
    WHERE ([DIM_1].[Hierarchy_1].&[xyz], [Dim_2].[Hierarchy_2].&[abc], [Measures].[Demo KPI]) 

내가 여기에 코드를 한 세트로 표현했다

SELECT 
     NON EMPTY { [yesterday_1] } ON COLUMNS, 
     NON EMPTY { [Account].[Account ID].[All].CHILDREN } ON ROWS 
    FROM [DEMO] 
    WHERE ([DIM_1].[Hierarchy_1].&[xyz], [Dim_2].[Hierarchy_2].&[abc], [Measures].[Demo KPI]) 

MDX 사용하는 계산 된 측정 ....

이 결과는 NULLS를 포함하지 않는 있도록 MDX 문을이 문제를 해결하거나 재 작성하는 방법을 NULLS either.Is 필터링에 도움이되지 않습니다 NONEMPTYEXISTS 교체 시도? 행에 대한

답변

0

NON EMPTYNULL의 모든 열을 것이다 디스플레이에서 행을 제외하고 열에 대한 NON EMPTYNULL의 모든 행을 보여줄 것이다 디스플레이에서 열을 제외한다.

데이터 내용이 확실하지 않습니다. 그러나 EXISTS에 세 번째 인수로 [Measures].[Demo KPI] 계수를 포함하는 측정 값 그룹의 이름을 따옴표로 추가하는 것이 도움이 될 수 있습니다. 그리고 앞에 직접 HAVING 절을 추가하면 각 행에 대해 행을 표시하도록 평가할 수있는 조건을 사용할 수 있습니다.

+1

안녕하세요 프랭크 - 사용자 지정 집합이 컨텍스트 인식이 아니기 때문에 (WHERE 절 제외)이 설정은'currentmember'를'[base_yesterday_1] '집합에 넣는 사용자에게 영향을 미칩니 까? – whytheq

+0

@whytheq 좋은 지적! '[Date] .CURRENTMEMBER'는 날짜 계층 구조의 기본 멤버입니다. 아마도'All' 멤버가 될 것입니다. 'NEXTMEMBER'. – FrankPl