Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W wyrażeniach wielowymiarowych (MDX) wyrażenie skalarne to element składni MDX, który po ocenie zwraca pojedynczą wartość w kontekście wykonania.
Wyrażenia skalarne obejmują wyrażenia łańcuchowe, numeryczne i datowe w MDX.
Wyrażenia skalarne są zazwyczaj stosowane w obliczonych definicjach członków, ponieważ obliczane elementy muszą zwracać wartość skalarną. Poniższe zapytanie pokazuje przykłady obliczonych członków na wymiarze Measures, które wykorzystują różne typy wyrażeń skalarnych:
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]
Jedynym typem danych, który miara, obliczona lub nie, może zwrócić, jest wariant OLE. Dlatego czasem możesz potrzebować przypisać wartość miary konkretnemu typowi, aby otrzymać oczekiwane zachowanie. Poniższe zapytanie pokazuje przykład tego:
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]