Divide - Riferimenti per gli operatori MDX
Esegue un'operazione aritmetica di divisione di un numero per un altro.
Sintassi
Dividend / Divisor
Parametri
Dividendo
Espressione MDX (Multidimensional Expression) valida che restituisce un valore numerico.
Divisore
Espressione MDX valida che restituisce un valore numerico.
Valore restituito
Valore con il tipo di dati del parametro con precedenza maggiore.
Osservazioni:
Il valore effettivo restituito dall'operatore / (Divide) rappresenta il quoziente della prima espressione divisa per la seconda espressione.
È necessario che alle due espressioni sia applicato lo stesso tipo di dati oppure che un'espressione possa essere convertita in modo implicito nel tipo di dati dell'altra espressione. Se Divisor restituisce un valore Null, l'operatore genera un errore. Se divisore e dividendo restituiscono un valore Null, l'operatore restituisce un valore Null.
Esempi
Nell'esempio seguente viene illustrato l'utilizzo di questo operatore.
-- 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])
La divisione di un valore diverso da zero o non Null per zero o null restituirà il valore Infinito, il quale viene visualizzato nei risultati di query come "1, #INF". Nella maggior parte dei casi, è necessario controllare le divisioni per zero per evitare questa situazione. Nell'esempio seguente viene illustrata la modalità di questo controllo:
//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])