Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Multidimensionale Expressies (MDX) is een scalaire expressie een element van de MDX-syntaxis dat, wanneer geƫvalueerd, een enkele waarde teruggeeft binnen de context van de evaluatie.
Scalairexpressies omvatten string-, numerieke en datumexpressies in MDX.
Scalairexpressies worden doorgaans gebruikt in gedefinieerde berekende leden, omdat berekende leden een scalaire waarde moeten teruggeven. De volgende query toont voorbeelden van berekende leden op de dimensie Measures die verschillende typen scalairexpressies gebruiken:
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]
Het enige datatype dat een maat, berekend of niet, kan teruggeven, is het OLE Variant-type. Daarom moet je soms een maatwaarde uitspreken voor een bepaald type om het gedrag te ontvangen dat je verwacht. De volgende query toont een voorbeeld hiervan:
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]