2017-12-29 12 views
1

큐브에는 한 달을 나타내는 시간 차원 (마침표)으로 나누어 진 데이터가 채워져 있습니다.
select non empty {[Measures].[a], [Measures].[b], [Measures].[c]} on columns, {[Period].[Period].ALLMEMEMBERS} on rows from MyCube

반환 : 쿼리에 따라

비어 있지 않은
select {[Measures].[a], [Measures].[b], [Measures].[c]} on columns, {[Period].[Period].ALLMEMEMBERS} on rows from MyCube
을 제거
+--------+----+---+--------+ | Period | a | b | c | +--------+----+---+--------+ | 2 | 3 | 2 | (null) | | 3 | 5 | 3 | 1 | | 5 | 23 | 2 | 2 | +--------+----+---+--------+MDX - 선택한 범위 밖에서 필터가 비어 있습니다.

는 렌더링 : 내가 좀하고 싶습니다 무엇
+--------+--------+--------+--------+ | Period | a | b | c | +--------+--------+--------+--------+ | 1 | (null) | (null) | (null) | | 2 | 3 | 2 | (null) | | 3 | 5 | 3 | 1 | | 4 | (null) | (null) | (null) | | 5 | 23 | 2 | 2 | | 6 | (null) | (null) | (null) | +--------+--------+--------+--------+

는, 모든 기록입니다 기간 2에서 기간 5까지 측정 값 "a"의 첫 번째 발생은 별표 범위의 t, 마지막 발생 - 범위의 끝.

이 작동 -하지만 난이 동적 MDX에 의해 런타임 동안 계산해야합니다 그냥 수 +--------+--------+--------+--------+ | Period | a | b | c | +--------+--------+--------+--------+ | 2 | 3 | 2 | (null) | | 3 | 5 | 3 | 1 | | 4 | (null) | (null) | (null) | | 5 | 23 | 2 | 2 | +--------+--------+--------+--------+

내가 처음/마지막 값을 찾고 시도했지만 :
select non empty {[Measures].[a], [Measures].[b], [Measures].[c]} on columns, {[Period].[Period].&[2] :[Period].[Period].&[5]} on rows from MyCube

원하는 출력이 쿼리에 적절하게 작성하십시오. 누구든지 전에이 문제가 있습니까? 이것은 아무 일도 일어나지 않는 곳에서 수개월을 뛰어 넘지 않고 지속적인 재무 보고서를 작성하고자 할 때 매우 일반적으로보아야합니다. 감사.

답변

0

어쩌면 WITH 절에 NonEmpty/Tail 기능을 재생 해보십시오 :

:

WITH 
SET [First] AS 
    {HEAD(NONEMPTY([Period].[Period].MEMBERS, [Measures].[a]))} 
SET [Last] AS 
    {TAIL(NONEMPTY([Period].[Period].MEMBERS, [Measures].[a]))} 
SELECT 
    { 
    [Measures].[a] 
, [Measures].[b] 
, [Measures].[c] 
    } on columns, 
    [First].ITEM(0).ITEM(0) 
    :[Last].ITEM(0).ITEM(0) on rows 
FROM MyCube; 

는 당신이 이런 일을 할 수있는 반환 무엇 회원보고, 사용자 정의 세트를 디버깅

WITH 
SET [First] AS 
    {HEAD(NONEMPTY([Period].[Period].MEMBERS, [Measures].[a]))} 
SELECT 
    { 
    [Measures].[a] 
, [Measures].[b] 
, [Measures].[c] 
    } on columns, 
    [First] on rows 
FROM MyCube; 

어린이의 평균 이는 대안이기도합니다. [Period]을 추가하려면

WITH 
SET [First] AS 
    {HEAD(NONEMPTY([Period].[Period].[Period].MEMBERS 
    , [Measures].[a]))} 
SET [Last] AS 
    {TAIL(NONEMPTY([Period].[Period].[Period].MEMBERS 
    , [Measures].[a]))} 
SELECT 
    { 
    [Measures].[a] 
, [Measures].[b] 
, [Measures].[c] 
    } on columns, 
    [First].ITEM(0).ITEM(0) 
    :[Last].ITEM(0).ITEM(0) on rows 
FROM MyCube; 
+0

덕분에 다시 비어 있습니다. 지금 디버깅하려고하고 왜 작동하지 않는지 확신하지 못합니다. 어떻게 세트를 출력하여 그 안에 무엇이 있는지 볼 수 있습니까? –

+1

작품입니다. 모든 멤버 대신 아이들 (잘못 철자) -이 방법은 처음에는 모든 회원을 데리러 가지 않습니다. 고마워, 너는 나에게 많은 시간을 절약 해 줬어. –

+0

@ Fd-ski 걱정 없음 - 해결책을 찾았 기 때문에 기꺼이 답할 것입니다. 답변을 조금 더 추가했습니다. 디버깅 및 어린이를위한 일반적인 대안 – whytheq

관련 문제