Wie kann ich feststellen, ob Dimensionen miteinander verbunden sind?
Frage
Ich entwickle eine Abfrage -Builder -Anwendung, die MDX generiert und versuche, Kundenzahlen aus einem Würfel mit den folgenden zu beziehen, was gut funktioniert:
WITH MEMBER MEASURES.X AS (
{ [Customer].[Gender].[Female]},
[Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]
Wenn der Benutzer jedoch in eine Dimension zieht, die nicht mit dem Kunden zusammenhängt:
WITH MEMBER MEASURES.X AS (
{ [Customer].[Gender].[Female]},
{ [Employee].[Status].[Active], [Employee].[Status].[Inactive]},
[Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]
Das Zählergebnis wird offensichtlich falsch.
Gibt es eine Möglichkeit, festzustellen, ob eine Dimension mit dem Kunden zusammenhängt, damit ich sie von der generierten MDX -Abfrage ausschließen kann?
Lösung 2
Löste das Problem mit der Verwendung der Existiert (set_expression1, set_expression2 [, messgroupname]) Funktion. Keine Notwendigkeit, manuell zu bestimmen, welche Dimensionen miteinander verbunden sind. Das Existiert Die Funktion filtert die nicht verwandten Tupel und hinterlässt nur die{ [Customer].[Customer].Children, [Customer].[Gender].[Female]}
eingestellt, um die Zählung zu machen.
Hier ist der MDX:
WITH MEMBER MEASURES.X AS Exists(
[Customer].[Customer].Children,
{[Customer].[Gender].[Female]}
*
{[Employee].[Status].[Active], [Employee].[Status].[Inactive]}
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]