Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Man kann in Multidimensional Expressions (MDX) auf fast jedem Objekt String-Funktionen verwenden. In gespeicherten Prozeduren verwendet man hauptsächlich String-Funktionen, um das Objekt in eine String-Darstellung umzuwandeln. Man verwendet außerdem Zeichenkettenfunktionen, um einen Zeichenkettenausdruck über einem Objekt auszuwerten, um einen Wert zurückzugeben.
Die am weitesten verbreiteten Zeichenkettenfunktionen sind Name und Uniquename. Diese Funktionen geben jeweils den Namen und den eindeutigen Namen eines Objekts zurück. Meistens werden sie beim Debuggen von Berechnungen verwendet, um herauszufinden, welches Element eine Funktion zurückgibt.
Beispiele
Die folgenden Beispielabfragen zeigen, wie diese Funktionen verwendet werden:
WITH
//Returns the name of the current Product on rows
MEMBER [Measures].[ProductName] AS [Product].[Product].CurrentMember.Name
//Returns the uniquename of the current Product on rows
MEMBER [Measures].[ProductUniqueName] AS [Product].[Product].CurrentMember.Uniquename
//Returns the name of the Product dimension
MEMBER [Measures].[ProductDimensionName] AS [Product].Name
SELECT {[Measures].[ProductName],[Measures].[ProductUniqueName],[Measures].[ProductDimensionName]}
ON COLUMNS,
[Product].[Product].MEMBERS ON ROWS
FROM [Adventure Works]
Die Generate-Funktion kann verwendet werden, um auf jedem Element einer Menge eine Zeichenkettenfunktion auszuführen und die Ergebnisse zu verketten. Dies kann auch beim Debuggen von Berechnungen nützlich sein, da es ermöglicht, den Inhalt einer Menge zu visualisieren. Das folgende Beispiel zeigt, wie man es auf diese Weise verwendet:
WITH
//Returns the names of the current Product and its ancestors up to the All Member
MEMBER [Measures].[AncestorNames] AS
GENERATE(
ASCENDANTS([Product].[Product Categories].CurrentMember)
, [Product].[Product Categories].CurrentMember.Name, ", ")
SELECT
{[Measures].[AncestorNames]}
ON COLUMNS,
[Product].[Product Categories].MEMBERS ON ROWS
FROM [Adventure Works]
Eine weitere Gruppe weit verbreiteter String-Funktionen sind solche, die es ermöglichen, einen String mit dem eindeutigen Namen eines Objekts oder einen Ausdruck, der auf das Objekt aufgelöst wird, in das Objekt selbst zu übertragen. Die folgende Beispielanfrage zeigt, wie die Funktionen StrToMember und StrToSet dies tun:
SELECT
{StrToMember("[Measures].[Inter" + "net Sales Amount]")}
ON COLUMNS,
StrToSet("{
[Product].[Product Categories].[Category].&[3],
[Product].[Product Categories].[Product].&[477],
[Product].[Product Categories].[Product].&[788],
[Product].[Product Categories].[Product].&[708],
[Product].[Product Categories].[Product].&[711]
}")
ON ROWS
FROM [Adventure Works]
Note
Die Funktionen StrToMember und StrToSet sollten mit Vorsicht verwendet werden. Sie können zu schlechter Abfrageleistung führen, wenn sie in Berechnungsdefinitionen verwendet werden.