2012-07-10 96 views
0

我已經構建了一個DataCalculation維度,該維度應該具有基於時間的計算。應該總結每項措施在過去的7天,並行期等 我建立了一個命名集的最後7天:MDX:使用集合中的命名集合(最近7天)

CREATE SET CURRENTCUBE.[Last 7 days] 
AS { 
StrToMember(Cstr("[Dmn_Dates].[date calc].&["+ 
Cstr(Format(Now(),"yyyy-MM-dd")) +"T00:00:00]")) 
: 
StrToMember(Cstr("[Dmn_Dates].[Date calc].&["+ 
Cstr(Format(Now()-7,"yyyy-MM-dd")) +"T00:00:00]")) 
}; 

,然後試圖用它計算的成員上: 創建成員CURRENTCUBE。 [Dmn_ DateTool]。[日期工具] [最後7 Days_] 作爲

aggregate(
{ 
StrToMember(Cstr("[Dmn_Dates].[date calc].&["+ 
Cstr(Format(Now(),"yyyy-MM-dd")) +"T00:00:00]")) 
: 
StrToMember(Cstr("[Dmn_Dates].[Date calc].&["+ 
Cstr(Format(Now()-7,"yyyy-MM-dd")) +"T00:00:00]")) 
} 
,([Dmn_ DateTool].[Date Tool].[regular],measures.LeadCounter)) 
, visible = 1; 

它不工作。我得到的是一個計算的記憶[最近7天],顯示與常規值相同的值。

感謝閱讀,直到這裏。

回答

1

我會檢查生成的集合有效性,它包含正確的成員;某事像:

select [Last 7 days] on 0 ... 

也許你已扭轉自/至:現在() - 7:現在不是現在():現在() - 7 ...

1

當您使用Range operator在類似於member1:member2的表達式中,member1必須以層級順序位於member2之前。否則,範圍運算符將返回一個空集。

此外,您必須確保您的表達式如StrToMember(Cstr("[Dmn_Dates].[date calc].&["+Cstr(Format(Now(),"yyyy-MM-dd")) +"T00:00:00]"))確實返回現有成員:null:null返回空集。