Деление — Справочник оператора MDX

Выполняет арифметическую операцию, которая делит одно число на другое.

Syntax

  
Dividend / Divisor  

Параметры

Дивиденды
Допустимое выражение многомерных выражений (MDX), которое возвращает числовое значение.

Делитель
Допустимое выражение MDX, которое возвращает числовое значение.

Возвращаемое значение

Значение с типом данных параметра, который имеет более высокий приоритет.

Remarks

Фактическое значение, возвращаемое оператором / (Делить), представляет собой фактор первого выражения, делённый на второе.

Оба выражения должны иметь одинаковый тип данных, или одно из выражений должно допускать неявное преобразование к типу данных другого выражения. Если Дивизор вычисляет до нулевого значения, оператор выдает ошибку. Если и Дивизор, и Дивиденд имеют нулевое значение, оператор возвращает нулевое значение.

Примеры

Следующий пример демонстрирует использование этого оператора.

-- This query returns the freight cost per user,  
-- for products, averaged by month.   
With Member [Measures].[Freight Per Customer] as  
    [Measures].[Internet Freight Cost]  
    /   
    [Measures].[Customer Count]  
  
SELECT   
    [Ship Date].[Calendar].[Calendar Year] Members ON 0,  
    [Product].[Category].[Category].Members ON 1  
FROM  
    [Adventure Works]  
WHERE  
    ([Measures].[Freight Per Customer])  

Деление ненулевой или ненулевой величины на ноль или нулево возвращает значение Бесконечность, которое отображается в результатах запроса как значение «1.#INF». В большинстве случаев стоит проверить деление на ноль, чтобы избежать такой ситуации. Следующий пример показывает, как:

//Returns 1.#INF when Internet Sales Amount is zero or null  
Member [Measures].[Reseller to Internet Ratio] AS  
[Measures].[Reseller Sales Amount]  
/  
[Measures].[Internet Sales Amount]  
//Traps the division by zero scenario and returns null instead of 1.#INF  
Member [Measures].[Reseller to Internet Ratio With Error Handling] AS  
IIF([Measures].[Internet Sales Amount]=0, NULL,  
[Measures].[Reseller Sales Amount]  
/  
[Measures].[Internet Sales Amount])  
SELECT  
{[Measures].[Reseller to Internet Ratio],[Measures].[Reseller to Internet Ratio With Error Handling]} ON 0,  
[Product].[Category].[Category].Members ON 1  
FROM  
[Adventure Works]  
WHERE([Date].[Calendar].[Calendar Year].&[2001])