MANUAL DE CONSULTAS MDX
Página 1
MANUAL DE CONSULTAS MDX
Autores:
- VILLANUEVA PONCE, WILMER
- TABOADA ARÉVALO, EVONNY
MANUAL DE CONSULTAS MDX
Página 2
Universidad Nacional Agraria De La Selva
Facultad de ingeniería en informática y sistemas
Tema: MANUAL DE CONSULTAS MDX
Profesor : Ing. PANDO SOTO, BRIAN
Curso : INTELIGENCIA DE NEGOCIOS
AlumnOS : TABOADA AREVALO, EVONNY
Villanueva ponce, wilmer
Semestre : 2013-II
MANUAL DE CONSULTAS MDX
Página 3
INDICE
INTRODUCCIÓN .................................................................................................... 4
OBJETIVOS ............................................................................................................ 5
1. CONSULTAS MDX ........................................................................................... 6
1.1. Filter (MDX) ................................................................................................ 6
1.2. IIf (MDX): .................................................................................................... 7
1.3. SELECT (Instrucción, MDX) ....................................................................... 9
1.4. CREATE SET (Instrucción, MDX) ............................................................ 11
1.5. Descendants (MDX) ................................................................................. 12
1.6. NonEmpty (MDX) ..................................................................................... 14
1.7. Crossjoin (MDX) ....................................................................................... 15
1.8. Ancestors (MDX) ...................................................................................... 16
1.9. Aggregate (MDX) ..................................................................................... 17
1.10. ParallelPeriod (MDX) ............................................................................ 18
CONCLUSIONES .................................................................................................. 20
BIBLIOGRAFIA ..................................................................................................... 21
MANUAL DE CONSULTAS MDX
Página 4
INTRODUCCIÓN
MDX, un acrónimo de Multi Dimensional Expressions, es una sintaxis que sostiene
la elaboración y manipulación de objetos multidimensionales y datos. MDX es
similar en muchos aspectos al Lenguaje de consulta estructurado (SQL) sintaxis,
pero no es una extensión del lenguaje SQL, de hecho, algunas de las funciones
que se suministra por MDX se pueden suministrar, aunque no tan eficiente o por
intuición, por SQL.
En el presente manual vamos a plasmar algunos comandos MDX teniendo en
cuenta sus sintaxis, argumentos y un ejemplo por cada comando mencionado.
MANUAL DE CONSULTAS MDX
Página 5
OBJETIVOS
Conocer algunos comandos MDX para realizar consultas
multidimensionales.
MANUAL DE CONSULTAS MDX
Página 6
1. CONSULTAS MDX
Las expresiones multidimensionales (MDX) permiten consultar objetos
multidimensionales, como los cubos, y devolver conjuntos de celdas
multidimensionales que contengan los datos del cubo. Este tema y los temas
secundarios proporcionan información general sobre las consultas MDX.
En los temas siguientes se describen las consultas MDX y los conjuntos de celdas
que generan, y proporcionan información más detallada acerca de la sintaxis
básica de MDX.
A continuación se hará un listado de diez comandos MDX con sus respectivos
ejemplos para entender la sintaxis:
1.1. Filter (MDX)
Devuelve el conjunto resultante de filtrar un determinado conjunto con
una condición de búsqueda.
Sintaxis:
Filter(Set_Expression, Logical_Expression)
Argumentos:
a) Set_Expression: Expresión MDX válida que devuelve un
conjunto.
b) Logical_Expression: Expresión lógica MDX (Expresiones
multidimensionales) válida que se evalúa en true o false.
MANUAL DE CONSULTAS MDX
Página 7
Ejemplo:
En el ejemplo siguiente se muestra el uso de la función Filter en el eje
de filas de una consulta para devolver únicamente las fechas en las
que Internet Sales Amount es mayor que 10000 dólares:
SELECT [Measures].[Internet Sales Amount] ON 0,
FILTER( [Date].[Date].[Date].MEMBERS
, [Measures].[Internet Sales Amount]>10000)
ON 1
FROM [Adventure Works]
1.2. IIf (MDX):
Evalúa diferentes expresiones de bifurcación en función de si una
condición booleana es true o false.
Sintaxis:
IIf(Logical_Expression, Expression1 [HINT <hints>], Expression2
[HINT <hints>])
Argumentos:
La función IIf toma tres argumentos:
iif(<condición>, <thenbranch>, <elsebranch>).
MANUAL DE CONSULTAS MDX
Página 8
a) Logical_Expression: Una condición que se evalúa true (1) o
false (0). Debe ser expresión lógica MDX (Expresiones
multidimensionales) válida.
b) Expression1Hint [Eager|Strict|Lazy]]: Se usa cuando la
expresión lógica se evalúa como true. Expression1 debe ser una
expresión MDX (Expresiones multidimensionales) válida.
c) Expression2Hint [Eager|Strict|Lazy]]: Se usa cuando la
expresión lógica se evalúa como false. Expression2 debe ser una
expresión MDX (Expresiones multidimensionales) válida.
Ejemplo:
En la consulta siguiente se muestra un uso simple de IIF dentro de
una medida calculada para devolver uno de dos valores de cadena
distintos cuando la medida Importe de venta por Internet es superior
o inferior a 10 000 dólares:
WITH MEMBER MEASURES.IIFDEMO AS
IIF([Measures].[Internet Sales Amount]>10000
, "Sales Are High", "Sales Are Low")
SELECT {[Measures].[Internet Sales Amount],MEASURES.IIFDEMO} ON 0,
[Date].[Date].[Date].MEMBERS ON 1
FROM [Adventure Works]
MANUAL DE CONSULTAS MDX
Página 9
1.3. SELECT (Instrucción, MDX)
Recupera datos de un cubo especificado.
Sintaxis:
[ WITH<SELECT WITH clause> [ ,<SELECT WITH clause>...n ] ] SELECT [ * | ( <SELECT query axis clause> [ ,<SELECT query axis clause>,...n ] ) ] FROM <SELECT subcube clause> [ <SELECT slicer axis clause> ] [ <SELECT cell property list clause> ] <SELECT WITH clause> ::= ( CELL CALCULATION <CREATE CELL CALCULATION body clause> ) | ( [ CALCULATED ] MEMBER <CREATE MEMBER body clause>) | ( SET<CREATE SET body clause>) | ( MEASURE = <measure body clause> ) <SELECT query axis clause> ::= [ NON EMPTY ] Set_Expression [ <SELECT dimension property list clause> ] ON Integer_Expression | AXIS(Integer) | COLUMNS | ROWS | PAGES | SECTIONS | CHAPTERS <SELECT subcube clause> ::= Cube_Name | [NON VISUAL] (SELECT [ *
MANUAL DE CONSULTAS MDX
Página 10
| ( <SELECT query axis clause> [ , <SELECT query axis clause>,...n ] ) ] FROM <SELECT subcube clause> <SELECT slicer axis clause> ) <SELECT slicer axis clause> ::= WHERE Tuple_Expression <SELECT cell property list clause> ::= [ CELL ] PROPERTIES CellProperty_Name [ ,CellProperty_Name,...n ] <SELECT dimension property list clause> ::= [DIMENSION] PROPERTIES (DimensionProperty_Name [,DimensionProperty_Name,...n ] ) | (LevelProperty_Name [, LevelProperty_Name,...n ] ) | (MemberProperty_Name [, MemberProperty_Name,...n ] )
Argumentos:
a) Set_Expression: Expresión MDX (Expresiones
multidimensionales) válida que devuelve un conjunto.
b) Integer: Entero entre 0 y 127.
c) Cube_Name: Cadena válida que proporciona un nombre de cubo.
d) Tuple_Expression: Expresión MDX válida que devuelve una
tupla.
e) CellProperty_Name: Cadena válida que representa una
propiedad de celda.
f) DimensionProperty_Name: Cadena válida que representa una
propiedad de dimensión.
g) LevelProperty_Name: Cadena válida que representa una
propiedad de nivel.
MANUAL DE CONSULTAS MDX
Página 11
h) MemberProperty_Name: Cadena válida que representa una
propiedad de miembro.
Ejemplo:
El ejemplo siguiente es una consulta de [Adventure Works] para obtener
las cifras de [Reseller Sales Amount] en una tabla donde las categorías
de producto son las columnas y los tipos comerciales de revendedor
son las filas.Observe que los totales se proporcionan para productos y
revendedores.
La instrucción SELECT es la siguiente:
select [Category].members on 0,
[Business Type].members on 1
from [Adventure Works]
where [Measures].[Reseller Sales Amount]
1.4. CREATE SET (Instrucción, MDX)
Crea un conjunto con nombre con ámbito de sesión para el cubo actual.
Sintaxis:
CREATE [SESSION] [ STATIC | DYNAMIC ] [HIDDEN] SET CURRENTCUBE | Cube_Name .Set_Name AS 'Set_Expression' [,Property_Name = Property_Value, ...n]
Argumentos:
a) Cube_Name: Expresión de cadena válida que proporciona el
nombre del cubo.
b) Set_Name: Expresión de cadena válida que proporciona el
nombre del conjunto con nombre que se va a crear.
MANUAL DE CONSULTAS MDX
Página 12
c) Set_Expression: Expresión MDX válida que devuelve un
conjunto.
d) Property_Name: Cadena válida que proporciona el nombre de
una propiedad del conjunto.
e) Property_Value: Expresión escalar válida que define el valor de la
propiedad del conjunto.
Ejemplo:
El siguiente ejemplo crea un conjunto denominado CoreProducts. A
continuación, la consulta SELECT llama al conjunto recién creado. La
instrucción CREATE SET debe ejecutarse antes de que se pueda
ejecutar la consulta SELECT (no se pueden ejecutar en el mismo lote).
CREATE SET [Adventure Works].[Core Products] AS '{[Product].[Category].[Bikes]}' SELECT [Core Products] ON 0 FROM [Adventure Works]
1.5. Descendants (MDX)
Devuelve el conjunto de descendientes de un miembro en el nivel o
distancia especificados; opcionalmente puede incluir o excluir los
descendientes de otros niveles.
Sintaxis:
Member expression syntax using a level expression Descendants(Member_Expression [ , Level_Expression [ ,Desc_Flag ] ] )
Member expression syntax using a numeric expression Descendants(Member_Expression [ , Distance [ ,Desc_Flag ] ] )
Set expression syntax using a level expression Descendants(Set_Expression [ , Level_Expression [ ,Desc_Flag ] ] )
MANUAL DE CONSULTAS MDX
Página 13
Member expression syntax using a numeric expression Descendants(Set_Expression [ , Distance [ ,Desc_Flag ] ] )
Argumentos:
a) Member_Expression: Expresión MDX válida que devuelve un
miembro.
b) Set_Expression: Expresión MDX válida que devuelve un conjunto.
c) Level_Expression: Expresión MDX válida que devuelve un nivel.
d) Distance: Expresión numérica válida que especifica la distancia
desde el miembro especificado.
e) Desc_Flag: Expresión de cadena válida que especifica una marca
de descripción que distingue entre posibles conjuntos de
descendientes.
Ejemplo:
El ejemplo siguiente devuelve el miembro especificado (UnitedStates) y los
miembros entre el miembro especificado (UnitedStates) y los miembros del
nivel anterior al nivel especificado (City). El ejemplo devuelve el propio
miembro especificado (UnitedStates) y los miembros del nivel State-
Province (el nivel anterior al nivel City). Este ejemplo incluye argumentos
comentados para permitir probar de manera sencilla otros argumentos para
esta función.
MANUAL DE CONSULTAS MDX
Página 14
SELECT Descendants ([Geography].[Geography].[Country].&[United States] //, [Geography].[Geography].[Country] , [Geography].[Geography].[City] //, [Geography].[Geography].Levels (3) //, SELF //, AFTER , BEFORE // BEFORE_AND_AFTER //, SELF_AND_AFTER //, SELF_AND_BEFORE //,SELF_BEFORE_AFTER //,LEAVES ) ON 0 FROM [Adventure Works]
1.6. NonEmpty (MDX)
Devuelve un conjunto de tuplas que no están vacías de un conjunto
especificado, según el producto cruzado del conjunto especificado con
un segundo conjunto.
Sintaxis:
NONEMPTY(set_expression1 [,set_expression2])
Argumentos:
a) set_expression1: Expresión MDX válida que devuelve un conjunto.
b) set_expression2: Expresión MDX válida que devuelve un conjunto.
MANUAL DE CONSULTAS MDX
Página 15
Ejemplo:
En la consulta siguiente se muestra un ejemplo simple de NonEmpty,
que devuelve todos los clientes que tenían un valor distinto de NULL
para Internet Sales Amount a fecha de 1 de julio de 2001:
SELECT [Measures].[Internet Sales Amount] ON 0,
NONEMPTY(
[Customer].[Customer].[Customer].MEMBERS
, {([Date].[Calendar].[Date].&[20010701], [Measures].[Internet Sales Amount])}
)
ON 1
FROM [Adventure Works]
1.7. Crossjoin (MDX)
Devuelve el producto cruzado de uno o más conjuntos.
Sintaxis:
Standard syntax Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] ) Alternate syntax Set_Expression1 * Set_Expression2 [* ...n]
Argumentos:
a) Set_Expression1: Expresión MDX válida que devuelve un conjunto. b) Set_Expression2: Expresión MDX válida que devuelve un conjunto.
MANUAL DE CONSULTAS MDX
Página 16
Ejemplo:
Devolver cifra de ventas por Internet por estado para los estados de
Estados Unidos.
SELECT CROSSJOIN ( {[Customer].[Country].[United States]}, [Customer].[State-Province].Members ) ON 0 FROM [Adventure Works] WHERE Measures.[Internet Sales Amount]
1.8. Ancestors (MDX)
Función que devuelve el conjunto de todos los antecesores de un
miembro especificado en un nivel especificado o a una distancia
especificada del miembro. Con Microsoft SQL Server AnalysisServices,
el conjunto devuelto siempre constará de un solo miembro;
AnalysisServices no admite varios elementos primarios para un miembro
único.
Sintaxis:
Level syntax Ancestors(Member_Expression, Level_Expression) Numeric syntax Ancestors(Member_Expression, Distance)
Argumentos:
a) Member_Expression: Expresión MDX válida que devuelve un
miembro.
b) Level_Expression: Expresión MDX válida que devuelve un nivel.
MANUAL DE CONSULTAS MDX
Página 17
c) Distance: Expresión numérica válida que especifica la distancia
desde el miembro especificado.
Ejemplo:
El ejemplo siguiente utiliza la función Ancestors para devolver la
medida Internet Sales Amount de un miembro, su miembro primario y
su miembro primario de segundo nivel. Este ejemplo utiliza expresiones
de nivel para especificar los niveles que se devolverán. Los niveles
están en la misma jerarquía que el miembro especificado en la
expresión de miembro.
SELECT { Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Category]), Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Subcategory]), Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Product]) } ON 0, [Measures].[Internet Sales Amount] ON 1 FROM [Adventure Works]
1.9. Aggregate (MDX)
Devuelve un número que se calcula al agregar las celdas devueltas por
la expresión establecida. Si no se proporciona una expresión numérica,
esta función agrega cada medida del contexto de consulta actual
mediante el operador de agregación predeterminado especificado para
cada medida.Si se proporciona una expresión numérica, esta función
primero evalúa y después suma la expresión numérica de cada celda
del conjunto especificado.
Sintaxis:
Aggregate(Set_Expression [ ,Numeric_Expression ])
MANUAL DE CONSULTAS MDX
Página 18
Argumentos:
a) Set_Expression: Expresión MDX válida que devuelve un
conjunto.
b) Numeric_Expression: Expresión numérica válida que suele
ser una expresión MDX de las coordenadas de celdas que devuelven
un número.
Ejemplo:
El ejemplo siguiente devuelve la suma del miembro
Measures.[OrderQuantity], agregado en los primeros ocho meses de
2003 incluidos en la dimensión Date del cubo Adventure Works.
WITH MEMBER [Date].[Calendar].[First8Months2003] AS Aggregate( PeriodsToDate( [Date].[Calendar].[Calendar Year], [Date].[Calendar].[Month].[August 2003] ) ) SELECT [Date].[Calendar].[First8Months2003] ON COLUMNS, [Product].[Category].Children ON ROWS FROM [Adventure Works] WHERE [Measures].[Order Quantity]
1.10. ParallelPeriod (MDX)
Devuelve un miembro de un periodo anterior en la misma posición
relativa que el indicado.
MANUAL DE CONSULTAS MDX
Página 19
Sintaxis:
ParallelPeriod( [ Level_Expression [ ,Index [ , Member_Expression ] ] ] )
Argumentos:
a) Level_Expression: Expresión MDX válida que devuelve un
nivel.
b) Index: Expresión numérica válida que especifica el número de
períodos paralelos que se van a retrasar.
c) Member_Expression: Expresión MDX válida que devuelve un
miembro.
Ejemplo:
El ejemplo siguiente devuelve el período paralelo del mes de octubre de 2003 con un retraso de tres períodos, de acuerdo con el nivel de trimestre, que devuelve el mes de enero de 2003.
SELECT ParallelPeriod ([Date].[Calendar].[Calendar Quarter] , 3 , [Date].[Calendar].[Month].[October 2003]) ON 0 FROM [Adventure Works]
MANUAL DE CONSULTAS MDX
Página 20
CONCLUSIONES
Se logró recopilar los comandos MDX con sus respectivos ejemplos dando
como resultados mejor entendimiento de éstos.
MANUAL DE CONSULTAS MDX
Página 21
BIBLIOGRAFIA
TechNet, Instrucciones MDX [sede Web]. Disponible en:
http://technet.microsoft.com/es-es/library/ms144786.aspx
Top Related