まず、このクエリに SQL Management Studio を使用します (問題があると思われる Excel 2007 はありません)。
WITH
SET [Project period dates] AS
{
StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project Start Iso") + "]"):
StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project End Iso") + "]")
}
MEMBER [Measures].[Test] AS ([Project period dates].COUNT)
SELECT
{
[Measures].[Test]
}
on 0,
NONEMPTY ([Project].[ParentProject].MEMBERS)
DIMENSION PROPERTIES [Project].[ParentProject].[Project Duration], [Project].[ParentProject].[Project Start Iso], [Project].[ParentProject].[Project End Iso]
on 1
FROM
[MyCube]
WHERE
(
[Orgunit].[Orgunit].&[448]
)
このクエリは、3 つのプロパティを含むプロジェクトのリストと、計算されたセットに基づく計算されたメンバーを提供します。プロパティには正しい値が表示されますが、計算されるメンバーは常に同じ値を示します。つまり、計算する必要がある最初のプロジェクトの結果です。
MSDN が次のように述べているため、理由はよくわかりません。
現在のメンバーは、クエリの軸で使用される階層で変更されます。したがって、軸で使用されていない同じ次元の他の階層の現在のメンバーも変更される可能性があります。この動作は「自動存在」と呼ばれます。
彼らは計算されたメンバーの例を示していますが、計算されたセットでも機能するはずだと思います。クエリベースの計算されたセットは本質的に動的であることを読みました。私がそれを間違って理解したのか、それとも他に何が問題なのかを誰かが教えてくれるかもしれません。