MDX: Select * From [Cube] ?

¿Qué es MDX?  Para quienes tienen conocimientos de Analysis Services saben que MDX es el lenguaje de consulta a estructuras multidimensionales (cubos de información), cuya sintaxis es parecida al Sql (Lenguaje de Consulta Estructurada) para base de datos relacionales pero no es igual, ya que en vez de tablas, campos, hablamos de cubos, dimensiones, medidas, jerarquías principalmente.


MDX, tiene dos funciones principales:


1.- Crear Miembros Calculados.-  Esto lo realiza a través de Expresiones MDX, similares a fórmulas de hoja de cálculo y que retorna un solo valor. En el Sql Server Business Intelligence Studio lo encuentras en el tab: CALCULATIONS


Un ejemplo para graficar:


[Measures]. [Monto Bruto Ventas] – [Measures].[Descuento] 


Suele colocarse a los objetos OLAP entre corchetes, principalmente cuando hay espacios en blanco, comienzan en caracter numérico o usa palabras reservadas:


[Monto Bruto Ventas]


[4A]


[Select]


 2.- Retornar Set de Datos: Esto se realiza a través de sentencias MDX, estas sentencias son similares a las del ANSI Sql, retorna un set de datos y generalmente son enviadas de forma transparente por el usuario a través de herramientas de explotación OLAP (Excel, Proclarity, etc, etc).


Un ejemplo para graficar:


Select


From [AdventureWorksDW] 


Esta sentencia me retornará la primera medida que aparezca en el Editor de Cubos, como verán no existe el concepto de Select *, ya que no hablamos de campos sino de objetos OLAP mostrados en ejes.


Otro Ejemplo: 


Select [Measures] .[Monto de Ventas] ON COLUMNS


From [AdventureWorksDW] 


Esta sentencia nos mostrará en columnas el monto de ventas del cubo AdventureWorksDW.


Podemos manejar hasta 128 ejes

Para más información les envío este link:

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


Para lanzar sus consultas MDX lo hacen a través del SSMS, se conectan al servidor Analysis Services y colocan New Query…!!!


Enjoy…!!! 


 

6 comentarios en “MDX: Select * From [Cube] ?”

  1. Nicolas ..

    q bueno que alguien se anime nuevamente a escribir sobre BI y sobre Analysis Services 😀
    Seguiré los posts, porque extraño volver al mundo de BI

    Saludos

  2. Hola …. Es posible que tu puedas ayudarme, necesito totalizar una columna para poder hallar una formula de porcentaje, esto lo estoy haciendo desde el with member con la funcion sum pero al momento de ejecutarla me totaliza pero por cada uno de los registros.

    Aca esta la consulta …muchas gracias de antemano

    with member [Measures].[PORC] as ‘(([DIA.DIA].[All DIA].[2007], [Measures].[CANTIDAD]) * 100.0)’
    member [Measures].[PORCT] as ‘Sum({[DIA.DIA].[All DIA].[2007]}, [Measures].[CANTIDAD])’
    select NON EMPTY Crossjoin({[DIA.DIA].[All DIA].[2007], [DIA.DIA].[All DIA].[2008]}, {[Measures].[CANTIDAD],

    [Measures].[PORCT]}) ON COLUMNS,
    NON EMPTY {Hierarchize(Union([MODALIDAD.MODALIDAD].[(All)].Members, [MODALIDAD.MODALIDAD].[All

    MODALIDAD].Children))} ON ROWS
    from [HECH_COND_INTER]

  3. Mire tengo la siguiente situación:
    Necesito guardar las consultas en una Base de Datos…para poderlas interpretar con otra aplicación (para representar los datos en un GIS).
    Es posible esto??
    Les estaría muy agradecido… respondanme a mi correo walteragr@gmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *