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.
In Multidimensional Expressions (MDX) ist ein skalarer Ausdruck ein Element der MDX-Syntax, das bei Auswertung im Kontext der Auswertung einen einzelnen Wert zurückgibt.
Skalare Ausdrücke umfassen in MDX Zeichenketten-, numerische und Datumsausdrücke.
Skalare Ausdrücke werden typischerweise in berechneten Elementdefinitionen verwendet, da berechnete Mitglieder einen skalaren Wert liefern müssen. Die folgende Abfrage zeigt Beispiele von berechneten Mitgliedern in der Dimensionsdimension, die verschiedene Arten von skalaren Ausdrücken verwenden:
WITH
MEMBER MEASURES.NumericValue AS 10
MEMBER MEASURES.NumericExpression AS 10 + 10
MEMBER MEASURES.NumericExpressionBasedOnMeasure AS [Measures].[Internet Sales Amount] + 10
MEMBER MEASURES.StringValue AS "10"
MEMBER MEASURES.ConcatenatedString AS "10" + "10"
MEMBER MEASURES.StringFunction AS MEASURES.CURRENTMEMBER.NAME
MEMBER MEASURES.TodaysDate AS NOW()
SELECT
{MEASURES.NumericValue,MEASURES.NumericExpression,MEASURES.NumericExpressionBasedOnMeasure,
MEASURES.StringValue, MEASURES.ConcatenatedString, MEASURES.StringFunction, MEASURES.TodaysDate}
ON COLUMNS
FROM [Adventure Works]
Der einzige Datentyp, den ein Maß, berechnet oder nicht, zurückgeben kann, ist der OLE-Variant-Typ. Daher muss man manchmal einen Measure-Wert auf einen bestimmten Typ aussprechen, um das erwartete Verhalten zu erhalten. Die folgende Abfrage zeigt ein Beispiel dafür:
WITH
//Two calculated measures that return strings
MEMBER MEASURES.NumericString1 AS "10"
MEMBER MEASURES.NumericString2 AS "10"
//In this case, the + operator acts to concatenate the strings
MEMBER MEASURES.Concatenation AS MEASURES.NumericString1 + MEASURES.NumericString2
//Casting one value to an integer with the CINT function causes the second measure
//to be treated as an integer too, so that the + operator now acts to add the values
MEMBER MEASURES.Addition AS CINT(MEASURES.NumericString1) + MEASURES.NumericString2
SELECT
{MEASURES.NumericString1,MEASURES.NumericString2,MEASURES.Concatenation,MEASURES.Addition }
ON COLUMNS
FROM [Adventure Works]