要回答我的問題有原來是與prevmember問題和下一個成員,因爲我想在我的標準上下文中輪流引用下一個項目。我其實是想引用我的設定中的下一個項目,這是微妙的不同。
爲了引用集合中的一個項目,您使用item,然後使用rank來獲取相鄰的單元格。
/* Define the shifts appropriate for this scenario */
SET [SpotShifts] AS
EXCEPT(
NONEMPTY([Dim Shift].[Shift Value1].[Shift Value1].MEMBERS,
(
[Dim Shift Entity].[Shift Entity].[GBP/FTSE],
[Dim Date].[Date].[Date].&[20120305],
{PriceImpacts
}
,[Dim Instrument].[Arena Name].[CO/GBP/Lch10/FTSE/140908/Inc_Quarter/5L]
)),[Dim Shift].[Shift Value1].&[0])
MEMBER Measures.CurrentSpotShift
AS
StrToValue([Dim Shift].[Shift Value1].CURRENTMEMBER.NAME)
MEMBER Measures.NextSpotShift AS
IIF((Measures.CurrentSpotShift<0),
SpotShifts.Item(RANK([Dim Shift].[Shift Value1].CURRENTMEMBER,SpotShifts)-2).NAME,
SpotShifts.Item(RANK([Dim Shift].[Shift Value1].CURRENTMEMBER,SpotShifts)).NAME)
MEMBER Measures.PreviousSpotShift AS
IIF((Measures.CurrentSpotShift<0),
SpotShifts.Item(RANK([Dim Shift].[Shift Value1].CURRENTMEMBER,SpotShifts)).NAME,
SpotShifts.Item(RANK([Dim Shift].[Shift Value1].CURRENTMEMBER,SpotShifts)-2).NAME)
MEMBER Measures.NextValue AS
IIF(Measures.CurrentSpotShift>0,
([Measures].[Impact Value],SpotShifts.Item(RANK([Dim Shift].[Shift Value1].CURRENTMEMBER,SpotShifts))),
([Measures].[Impact Value],SpotShifts.Item(RANK([Dim Shift].[Shift Value1].CURRENTMEMBER,SpotShifts)-2))
SELECT { NONEMPTY([Measures].[Impact Value]),
(Measures.PreviousSpotShift),
(Measures.LastValue),
(Measures.NextSpotShift),
(Measures.NextValue)} ON 0,
NONEMPTY(SpotShifts) ON 1
FROM factTradeCube
我希望這可以幫助別人,因爲我發現項目中的使用等級不會明顯地解決了這個,但我得到了正確的結果只有一個。
感謝您的建議,沒有奏效。我嘗試這樣做:WITH MEMBER措施[LastShift] AS ( [昏暗轉換] [移位值1] .LAG(1), [措施] [衝擊值] 。) MEMBER措施[NextShift] AS。 ( [Dim Shift]。[Shift Value1] .LEAD(1), [Measures]。[Impact Value] )'code' – 2012-03-23 16:13:28
非常好 - 很高興你能夠正常工作......乾杯! – 2012-03-23 17:32:55
MEMBER Measures.NextValue AS TAIL(NONEMPTY({NULL:[Dim Shift]。[Shift Value1] .LAG(1)} * [Measures]。[Impact Value]))Item(0)這是獲得下一個空值。我發現我正在挑選錯誤的值。 – 2012-03-29 13:54:36