저는 MDX에 비교적 익숙합니다 (지금 책을 주문하는 과정에서). 계산 된 측정 값을 만들 때 균열이 있습니다. 계산 된 측정 값을 만드는 데 균열이 있습니다.이 값은 설정된 날짜 범위를 기반으로하는 내 Fact 테이블 중 하나에서 값을 합산해야합니다 내 시간 차원에서) 다른 차원의 특성으로 필터링해야합니다. 불행히도, 나는 약간의 상황에서 나 자신을 얻은 것처럼 보이고 명확한 탈출구를 볼 수 없습니다. 다른 비슷한 질문을 살펴 보았지만이 같은 일을하려고하는 것을 보지 못했으며 단 하나의 차원 만 측정했습니다.필터링 된 측정 기준을 기반으로 계산 된 측정 값을 만들려면 어떻게해야합니까?
신체 측정 값 SourceMeasure
을 포함하는 측정 값 그룹이 있습니다.
계산 범위를 지정하는 데 사용하려는 [Time]
이라는 시간 차원이 있습니다. 이것은 내 날짜 키에 의해 위의 측정 값 그룹과 관련이 있습니다.
이라는 계정 차원에 [Account Start Date]
및 [Account End Date]
의 두 가지 날짜 속성이 있습니다. 이것은 계정 ID를 통해 위의 측정 값 그룹과 관련됩니다. 내가 할 노력하고있어
는 [Account Start Date]
및 [Account End Date]
에 기초 범위에 [Time]
차원을 필터링하고, 해당 계정에 지정된 기간 동안 [SourceMeasure]
의 합계를 반환합니다.
분명히 이것은 계정마다 다를 수 있으므로 [Dim Account]
크기 (0을 반환하거나 적용되지 않으면 null)를 제외하고는 집계하지 말아야합니다.
아래 예제 테스트 표현식은 MDX Studio에 따라 FORMAT_STRING 구문 오류로 인해 현재 작동하지 않습니다.
WITH
MEMBER [Measures].[LifetimeMeasure] AS
Sum
(
{
StrToMember
(
"[Time].[Date].&["
+ Format([Dim Account].[Account Start Date].CurrentMember.MemberValue,"yyyy-MM-ddThh:mm:ss")
+ "]"
)
:
StrToMember
(
"[Time].[Date].&["
+ Format([Dim Account].[Account End Date].CurrentMember.MemberValue,"yyyy-MM-ddThh:mm:ss")
+ "]"
)
}
,[Measures].[SourceMeasure]
)
SELECT
{
[Measures].[LifetimeMeasure]
,[Measures].[SourceMeasure]
}
ON COLUMNS
,{
[Dim Account].[Account].[AccountName]
}
ON ROWS
FROM
[MyCube]
나는 (범위, 필터, IIF) 몇 가지 다른 방법을 시도했지만 때마다 나는 같은 난제로 돌아갈 것 -의 값을 기준으로 [시간] 차원을 필터링하는 방법 [Dim Account] 시작일과 종료일.
이제 SSAS에 의해 계산 된 측정 값이 계산되는 방법 및/또는 차원 사이의 관계가 어떻게 작동하는지 완전히 오해하고있는 것일 수 있습니다. 그러나 나는 아직 찾을 수있는 수준에 있지 않습니다. , 그래서 나는 동그라미에 갈거야.
내가 할 수있는 일이 무엇인지, 그렇다면 내가 잘못 가고있는 부분을 파악하는 데 도움이되는 곳을 가리키는 포인터가 있습니까? 대신 계산 차원을 대신 사용해야할까요?
나는이 모든 것이 의미가 있기를 바라며, 내가 무엇이든 놓치거나 더 자세한 내용이 필요한지 알려주 길 바란다. MDX Studio을 사용하여 테스트하고 있습니다.