Zuerst einmal nutze ich das SQL Management Studio um diese (vereinfachte) Abfrage auszuführen (nicht Excel 2007, welches offensichtlich Probleme an dieser Stelle hat):
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]
)
Diese Abfrage liefert mir eine Liste von Projekten mit ihren drei Properties und einem calculated Member der auf dem vorhergehenden berechneten Set basiert zurück. Die Properties zeigen die richtigen Werte an, aber der calculated Member zeigt nur immer denselben
Wert: Das berechnete Ergebnis für das allererste Projekt der Hierarchie.
Ich versteh nicht wirklich warum, immerhin sagt das MSDN dazu:
"Das aktuelle Element ändert sich in einer Hierarchie, die auf einer Achse in einer Abfrage verwendet wird. Infolgedessen kann sich das aktuelle Element in anderen Hierarchien der selben Dimension, die nicht auf einer Achse verwendet werden, ebenfalls
ändern; dieses Verhalten wird als „auto-exists“ bezeichnet."
In den dortigen Beispielen wird mit calculated Members gearbeitet, was aber, sofern ich es richtig verstanden habe, kein Problem sein sollte, immerhin sind abfragebasierte calculated Sets ebenfalls dynamisch. Über einen Schubs in die richtige Richtung wäre
ich dankbar, denn mittlerweile weiß ich nicht mehr wo ich nach der Lösung meines Problems suchen soll.