Skip to content

Funciones del lenguaje MDX para el manejo de períodos de tiempo

16/07/2012

 Al momento de generar miembros calculados o expresiones para la definición de KPIs dentro de Analysis Services de SQL Server es muchas veces necesario utilizar funciones que nos permitan obtener determinados períodos de tiempo. Les resumo a continuación las más importantes, junto con links a la documentación completa y ejemplos de uso:

ParallelPeriod

Permite obtener unperíodo anterior a un miembro, indicando el nivel correspondiente. Por ejemplo, obtener el año anterior, dado un miembro del nivel de año de una jerarquía de fecha.

ParallelPeriod( [ Nivel [ ,Niveles [ , Miembro ] ] ] )

Nivel indica una expresión MDX que devuelve un nivel / Niveles indica cuantos periodos voy a saltar (default 1) / Miembro es una expresión MDX que determina un miembro particular

Link a la documentación en MSDN

Lag

Permite obtener el miembro que está a una cantidad determinada de posiciones antes que un miembro dado, a un mismo nivel

Miembro.Lag(Posiciones)

Miembro es una expresión MDX que devuelve un miembro determinado / Posiciones indica cuantos miembros deben saltarse desde el miembro indicado en “Miembro”. Se puede utilizar un valor negativo lo que devuelve un miembro posterior.

Ejemplo:

SELECT [Date].[Fiscal].[Month].[February 2002].Lag(2) ON 0 FROM [Adventure Works]

Link a la documentación en MSDN

PeriodsToDate

Devuelve un conjunto de miembros del mismo nivel que un miembro determinado, empezando por el primer miembro del mismo nivel y acabando con el miembro en cuestión, de acuerdo con la restricción del nivel especificado en la dimensión de tiempo. Se utilizar normalmente para calcular valores acumulados.

PeriodsToDate( [Nivel[ ,Miembro] ] )

Nivel indica una expresión MDX que devuelve un nivel / Miembro es una expresión MDX que determina un miembro particular

Ejemplo:

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]

Link a la documentación en MSDN

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: