2015-06-05 11 views
5

Ich habe einen Würfel mit einer Dimension, die eine Eltern-Kind-Hierarchie und mehrere nicht sichtbare Attribute enthält. Diese Dimension kann nur über die Eltern-Kind-Hierarchie abgefragt werden.Wie wird in MDX die Hierarchie beim Verweisen auf das All-Mitglied ausgewählt?

Mein Problem ist, wie der folgende MDX-Name aufgelöst wird:

[MyDimension].[All].Children 

In diesem Fall einer des nicht sichtbaren Attributs wird gewählt (aufgelöst: [MyDimension].[MyInvisibleAttributeUsedOnlyForOrdering].[All].Children), die zu unerwarteten Ergebnissen führt.

Das Problem tritt bei Verwendung einer CUBEMEMBER/CUBEVALUE-Funktion in Excel auf. Da Excel die unsichtbaren Attribute nicht berücksichtigt, springt die automatische Vervollständigung direkt von [MyDimension] zu [MyDimension].[All], ohne dass der Benutzer eine Hierarchie angeben muss. Wenn ein anderes Attribut sichtbar ist, funktioniert es gut, da die Autovervollständigung von Excel den Benutzer zwingt, eine der Hierarchien auszuwählen, die zu einem eindeutigen [MyDimension].[MyParentChildHierarchy].[All].[MyCorrectMembers] führt.

Eine mögliche Abhilfe besteht darin, alle unsichtbaren Attribute als nicht aggregierbar zu setzen, so dass [MyDimension].[All] nur im Rahmen meiner Eltern-Kind-Hierarchie Sinn macht, aber ich suche nach einer besseren und vielseitigeren Lösung.

Vielen Dank im Voraus für eine Lösung oder Erklärung des SSAS-Verhaltens.

+0

Welche Excel-Version verwenden Sie (inkl. SP)? –

+0

Wir verwenden Excel 2010 SP2 – Ndech

+0

Ich habe eine Umgebung, die ähnlich ist (SQL 2008 R2, Excel 2010). Ich kann dein Problem nicht reproduzieren. Tritt es nur auf, wenn die einzige sichtbare Hierarchie im PC-Dim die PC-Hierarchie ist? Meins hat ein anderes sichtbares Attribut. –

Antwort

0

Funktioniert die Funktion StripCalculatedMembers in Ihrer Situation?
Ich denke, es könnte mehr entfernen als Sie entfernen möchten.

MSDN Referenz hier: https://msdn.microsoft.com/en-us/library/ms145983.aspx

+0

Ich fürchte, es wird nicht helfen. Diese Dimension hat kein berechnetes Element. Ich möchte Mitglieder nicht wirklich entfernen. Ich möchte, dass Excel das richtige Attribut (meine übergeordnete Kindhierarchie) anstelle eines der ausgeblendeten Attribute verwendet, wenn ich auf das [All] -Member referenziere. Zögern Sie nicht zu fragen, ob meine Frage unklar bleibt. – Ndech

1

Wenn SSAS errät eine Attribut-Hierarchie für Dimension, meine Beobachtung ist, dass es die erste nimmt, wie in der dimension.xml-Datei definiert.

Um das Attribut zuerst zu sehen/ändern (dh das erste Kindattribut des Elements Attribute), müssen Sie Ihre SSAS-Datenbank in ein Visual Studio-Projekt importieren, mit der rechten Maustaste auf die Dimension klicken und Code anzeigen wählen bis zum Attributes-Element. Sie können das Eltern-Kind-Attribut kopieren und einfügen und es nach oben verschieben und alle Dinge beginnen gleich, dass Ihr MDX gegen diese Attributhierarchie statt (vermutlich) das Schlüsselattribut auflösen sollte.

Ich nehme an, Hierarchieelemente verhalten sich in der Hierarchiesammlung auf die gleiche Weise, haben dies aber nicht versucht.

Ich weiß nicht, ob es im Excel-Fall funktioniert, aber im allgemeinen MDX-Fall ist es die Technik, die ich seit Jahren verwende, um mein P-C-Attribut als Standard zu erhalten.