Verwenden von skalaren Ausdrücken

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]