21
MANUAL DE CONSULTAS MDX Página 1 MANUAL DE CONSULTAS MDX Autores: - VILLANUEVA PONCE, WILMER - TABOADA ARÉVALO, EVONNY

Trabajo manual mdx

Embed Size (px)

DESCRIPTION

Manual de MDX UNAS - FIIS

Citation preview

Page 1: Trabajo manual mdx

MANUAL DE CONSULTAS MDX

Página 1

MANUAL DE CONSULTAS MDX

Autores:

- VILLANUEVA PONCE, WILMER

- TABOADA ARÉVALO, EVONNY

Page 2: Trabajo manual mdx

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

Page 3: Trabajo manual mdx

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

Page 4: Trabajo manual mdx

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.

Page 5: Trabajo manual mdx

MANUAL DE CONSULTAS MDX

Página 5

OBJETIVOS

Conocer algunos comandos MDX para realizar consultas

multidimensionales.

Page 6: Trabajo manual mdx

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.

Page 7: Trabajo manual mdx

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>).

Page 8: Trabajo manual mdx

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]

Page 9: Trabajo manual mdx

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 [ *

Page 10: Trabajo manual mdx

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.

Page 11: Trabajo manual mdx

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.

Page 12: Trabajo manual mdx

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 ] ] )

Page 13: Trabajo manual mdx

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.

Page 14: Trabajo manual mdx

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.

Page 15: Trabajo manual mdx

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.

Page 16: Trabajo manual mdx

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.

Page 17: Trabajo manual mdx

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 ])

Page 18: Trabajo manual mdx

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.

Page 19: Trabajo manual mdx

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]

Page 20: Trabajo manual mdx

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.

Page 21: Trabajo manual mdx

MANUAL DE CONSULTAS MDX

Página 21

BIBLIOGRAFIA

TechNet, Instrucciones MDX [sede Web]. Disponible en:

http://technet.microsoft.com/es-es/library/ms144786.aspx