Skaler İfadeleri Kullanma

Çok Boyutlu İfadelerde (MDX), skaler ifade, değerlendirildiğinde değerlendirme bağlamında tek bir değer döndüren MDX sözdiziminin bir elemanıdır.

Skaler ifadeler MDX'te dize, sayısal ve tarih ifadelerini içerir.

Skaler ifadeler genellikle hesaplanan üye tanımlarında kullanılır, çünkü hesaplanan üyeler skaler bir değer döndürmek zorundadır. Aşağıdaki sorgu, Ölçüm boyutunda farklı türde skaler ifade kullanan hesaplanan üyelerin örneklerini gösterir:

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]  

Bir ölçümün, hesaplanmış ya da başka bir şekilde, döndürebileceği tek veri türü OLE Varyantı türüdür. Bu nedenle, beklediğiniz davranışı almak için bazen belirli bir tipe ölçü değeri atmanız gerekebilir. Aşağıdaki sorgu bunun bir örneğini göstermektedir:

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]