Чтобы ответить на мой собственный вопрос, оказалось, что есть проблемы с prevmember и nextmember, потому что я хотел ссылаться на следующий пункт по очереди в контексте моих критериев. Я действительно хотел сослаться на следующий элемент в моем наборе, который немного отличается.
Для ссылки на предмет в наборе вы используете предмет, а затем я использовал ранг, чтобы получить соседнюю ячейку.
/* 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
Надеюсь, это кому-нибудь поможет, поскольку использование ранга внутри предмета показалось мне не очевидным решением, но единственным, которое дало мне правильные результаты.