Divide – Referência do operador MDX
Realiza uma operação aritmética que divide um número por outro.
Sintaxe
Dividend / Divisor
Parâmetros
Dividendo
Uma linguagem MDX válida que retorna um valor numérico.
Divisor
Uma expressão MDX válida que retorna um valor numérico.
Valor Retornado
Um valor com o tipo de dados do parâmetro com prioridade maior.
Comentários
O valor real retornado pelo operador / (Divide) representa o quociente da primeira expressão dividida pela segunda expressão.
As duas expressões devem ser do mesmo tipo de dados ou uma expressão deve poder ser convertida implicitamente no tipo de dados da outra expressão. Se Divisor for avaliado como um valor nulo, o operador gerará um erro. Se Divisor e Dividend forem avaliados como um valor nulo, o operador retornará um valor nulo.
Exemplos
O exemplo a seguir demonstra o uso desse operador.
-- 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])
Dividir um valor diferente de zero ou não nulo por zero ou nulo retornará o valor infinito, que é exibido nos resultados de consulta como o valor “1.#INF”. Na maioria dos casos, verifique se há divisão por zero para evitar esta situação. O exemplo a seguir mostra como:
//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])