2013-08-19 3 views
1

MDX를 처음 접했고 간단한 질문이 있습니다. 나는 TFS 큐브와 함께 Team System이라는 이름으로 일합니다. 내 문제 :MDX DateTime 비교 속성

나는 AND 연산자를 사용하여 추가 표현식을 확인하려는 IIF 표현식을 사용합니다. 두 개의 DateTime 객체를 비교하고 싶습니다. 보고서에는 실제 날짜의 데이터 만 표시됩니다. 여기에 내 코드 :.

IIF(ISEMPTY(SUM(YTD(
    [Work Item].[PlannedWeek__HierarchyByWeek].CurrentMember), 
    [Measures].[EffectivelyValue])) 

및 [작업 항목] [PlannedWeek__HierarchyByWeek] 이제 .CurrentMember <는()

, [Measures].[EffectivelyValue] 
    , SUM(YTD(
    [Work Item].[PlannedWeek__HierarchyByWeek].CurrentMember), 
    [Measures].[EffectivelyValue])) 

계획 주 날짜 시간 데이터 유형을 가진자가 생성 필드입니다. Now() 함수는 DateTime 데이터 유형도 가지고 있으므로 비교가 올바르지 만 아무 일도 일어나지 않습니다.

기대에 감사 하라구요

오이겐 MDX에서

답변

1

계층 구조의 멤버는 '회원'의 데이터 형식을 가지고 있고, 날짜, 문자열 또는 정수와 같은 '원시'데이터 형식이 없습니다. 멤버 속성에만 '기본'데이터 유형이 있습니다. 주 속성의 datetime과 같은 속성을 정의 할 수 있습니다. SQL Server Analysis Services라고 가정하면 관계를 통해 수행됩니다.

또는 문자열 작업을 사용하여 큐브를 변경하지 않아도되는 UniqueName 속성에서 날짜 정보를 추출 할 수 있습니다. UniqueName에는 큐브 디자인에서 키로 정의한 데이터가 들어 있습니다. 당신의 주 계층 구조 멤버 (난 그냥 아래의 예로서 Mid(, 30, 8)를 사용합니다) 당신은 문자열 함수를 통해 8 월 20 일 3013에 대한 20,130,820 뭔가를 추출 할 수있는 키를 한 가정하면,

CLng(Mid([Work Item].[PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName, 30, 8)) 
< 
CLng(Format(Now(), "yyyymmdd")) 

당신 것 같은 뭔가를 할 수 정확히 CurrentMember.UniqueName이 위의 코드를 적용하기 위해 큐브에 표시되는지 확인해야합니다.

마지막으로 문자열 메서드를 사용하여 UniqueName에서 관련 부분을 추출한 다음 CDate 함수를 변경하지 않고 Now()과 비교할 수 있습니다. 이자형. <의 왼쪽에있는 모든 작업을 수행하십시오.

1

안녕하십니까. 답변 해 주셔서 대단히 감사합니다. 나는 시도했다 :

Mid([Work Item].[xxxx_PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName,58,10) 

2013년 7월 21일, 2013년 7월 28일 (는 주 엔딩을 보여줍니다)

그래서 난이 시도 :

AND CLng(Mid([Work Item].[xxxx_PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName,58,10)) 
<CLng(Format(Now(), "yyyy-mm-dd")) 

을하지만 아무 일도 발생하지 않습니다. 만약 내가 그것을 하나의 방법으로 실행한다면 그것은 어디 에나 "사실"을 보여줍니다. 하지만 날짜가있는 데이터 세트가 있습니다. > 2013-08-23. 그래서 거짓 가치도 있어야합니다.

편집 : 확인 문제가 해결되었습니다.

Format(Now(), "yyyy-mm-dd") 

당신이 그것을 발견

Format(Now(), "yyyy-MM-dd") 
+0

다행해야합니다. – FrankPl