我想根據當前行計算度量值。 問題是我找不到在WITH MEMBER部分中獲取當前行的方法。如何在WITH MEMBER計算MDX中獲取當前行值?
WITH MEMBER [Measures].[Test] AS AVG(
NonEmptyCrossJoin(
FILTER(DESCENDANTS([Exigences].[ENVGR], [Levier], SELF),
[Exigences].CurrentMember.Name = 'Chemicals'),
DESCENDANTS([Organization].[Valeo].[Powertrain Systems], [entity], SELF)),
[Measures].[ProgressLevel])
SELECT {[Measures].[ProgressLevel], [Measures].[Test]} ON COLUMNS,
DESCENDANTS([Exigences].[ENVGR].[ENVGR-01.001], [Levier], SELF) ON
ROWS FROM [Exigences]
化學物質目前爲硬編碼。這是例子。 我想用'化學物'代替當前的行數。
因此,假設這些值是行將返回'化學物質','藥房','測試',我想[度量]。[測試]計算改變。
MDX能做到嗎?如果是這樣,我怎麼能得到當前值。
我試過[Levier] .CurrentMember.Name,但我認爲它與[Exigences] .CurrentMember.Name衝突。
任何人有一個想法?
謝謝
不知道理解,你是什麼意思到當前行。底層表的行?如果是,哪一個? (這不是非常OLAP得到rowid :-)) – ic3
在ON ROWS選擇上,我做了一個DESCENDANTS,它會給我一組[Levier]成員。現在在頂部的WITH MEMBER中,您可以看到硬編碼的'Chemicals'字符串。我想這個字符串是我的[Levier] .CurrentMember.Name值。但由於[Exigences]維上的過濾我有衝突,[Exigences] .CurrentMember.Name和[Levier] .CurrentMember.Name之間的平等測試將始終爲真,因此,過濾器將不會過濾任何內容。 – Spredzy
我看到你的問題,棘手的問題之一。 icCube OLAP服務器支持功能語言來解決問題。對不起,我沒有看到如何解決你的問題,除非在Axis()上做些什麼或使用重複的層次結構。你需要爲這個標準的MDX su..s創建一個變量uff。 – ic3