2016-08-02 1 views
0

다음 요구 사항을 사용하여 쿼리를 구현해야합니다.MDX 쿼리 - 하위 선택 구현 - 하나만 제외하고 모든 열 값 선택

1) 여러 조건 (AND, OR)이 필요합니다. 2) 특정 값의 레코드를 제외해야하는 조건이 있습니다.

SELECT {...} ON Columns, {...} ON ROWS 
FROM 
    (SELECT {([Element1].[Value].&[98]&[002], [Element2].Value.&[Value1]), 
      ([Element1].[Value].&[98]&[004], [Element2].Value.&[Value2]),          ([Element1].[Value].&[98]&[005], [Element2].Value.NOTIN[value1, value2]), } ON Columns 
FROM [CubeName]) 

어떻게 구현할 수 있는지 알지 못하므로 NOTIN [value1, value2]을 언급했습니다. 나는 언급 된 것을 제외한 모든 가치를 가져야 만한다. 어떤 사람이 해결책을 제시 할 수 있는지 알려주세요.

답변

0

당신은 일반적으로 집합에서 일부 회원 제외 기능 EXCEPT을 사용합니다 :

SELECT 
    {...} ON 0 
, {...} ON 1 
FROM 
    (
    SELECT 
     EXCEPT(
     [Element1].[Value].[Value].MEMBERS //<<name of the full set 
     ,{ //<<the set to be excluded 
      [Element1].[Value].&[98]&[002], 
      [Element1].[Value].&[98]&[004], 
      [Element1].[Value].&[98]&[005] 
     } ON 0 
    FROM [CubeName] 
); 

위의 튜플에게 확장 할 수 있지만, 첫번째 인수가 크로스에 가입해야합니다

SELECT 
    {...} ON 0 
, {...} ON 1 
FROM 
    (
    SELECT 
     EXCEPT(
     [Element1].[Hier1].[Hier1].MEMBERS 
     * [Element1].[Hier2].[Hier2].MEMBERS //<<name of the full set 
     ,{ //<<the set to be excluded 
      ([Element1].[Hier1].[Hier1].&[Value1],[Element1].[Hier2].[Hier2].&[Value1]), 
      ([Element1].[Hier1].[Hier1].&[Value2],[Element1].[Hier2].[Hier2].&[Value2]), 
      ([Element1].[Hier1].[Hier1].&[Value3],[Element1].[Hier2].[Hier2].&[Value3]), 
     } ON 0 
    FROM [CubeName] 
); 
+0

도움 주셔서 감사합니다. 그게 효과가 있었어. 당신의 도움을 주셔서 감사합니다. – SomnathKR

+0

그건 유용 했어. AND와 OR을 제외한 나머지 부분을 추가 할 수있게 도와 주시겠습니까? – SomnathKR

+0

SELECT [{Ele1]. [Value]. & [1000] AND ([Ele2]. [값]. & [20] 또는 [Ele3]. [값]. & [200]) AND [ [값] .NOT [15] AND ([Ele5]. [값]. [10] 또는 [Ele6]. [값] .NOINT [100, 200])} [CubeName]의 열에서 – SomnathKR