Relaciones entre tablas en DAX – USERELATIONSHIP – Parte 1

Uno de los aspectos más importante del BI es el Análisis de tiempos. Tenemos mucho que contar sobre el BI de tiempos a través del Lenguaje de expresiones DAX, por lo que hoy vamos a empezar a trabajar con la tabla Fecha. Hasta ahora nuestra tabla Fecha está aislada del modelo, no se relaciona con nadie, por lo que si intentamos utilizarla el resultado es erróneo, sin segmentar, veamos.

Así es que, como ya sabemos, creamos la relación entre la tabla Orden y la tabla Fecha, aquí nos encontramos que hay tres columnas por las que establecer la relación y ¿qué hacemos? Pues utilizamos las tres columnas 🙂 Esta es una de las Novedades de SQL Server 2012. Desde la vista diagrama podemos ir enlazando entre las dos tablas, desde Orden tomamos cada una de las columnas tipo Fecha y las relacionamos siempre con la columna Fecha de la tabla Fecha, que es precisamente lo que muestra la siguiente secuencia.

El resultado es

El aspecto que tiene el Administrador de relaciones es el siguiente:

Si nos vamos a la tabla dinámica y actualizamos, tenemos los datos correctos, según la relación activa. Es decir, estamos viendo los datos referidos a FechaOrden, no a ninguna de las otras fechas.

Para demostrarlo, vamos a cambiar la relación activa. Vamos a seleccionar la relación entre Fecha.Fecha y Orden.FechaEntrega como relación activa. Desde la ventana Excel no podemos modificar el modelo en este sentido, así es que regresamos a la ventana PowerPivot.

Para cambiar la relación activa, necesitamos dos pasos: desactivar la actual para poder activar una nueva. Si intentamos obviar el primer paso, recibimos un mensaje de error.

Daría igual que lo intentásemos desde la vista Diagrama. Y ocurre lo mismo para FechaProducción, ahora podemos comparar los resultados que se obtienen en dependencia de la relación activa.

En todos los casos, en los paneles de la tabla dinámica la selección que tenemos es la misma. En todos los casos está bien, porque en efecto se han establecido las relaciones y en todos los casos los valores son diferentes. Otro problema que tenemos es que desde esta tabla dinámica no tenemos ninguna información acerca de la relación activa, por lo que no tenemos claro, por cuál de las tres fechas se están mostrando los datos.

Esta problemática se complica si queremos obtener los datos por las tres fechas al mismo tiempo, sin estar cambiando la relación activa, es un escenario natural que necesitemos obtener el total de las órdenes por las tres fechas en una misma tabla.

Aquí lo dejamos. Hoy hemos visto la posibilidad de crear múltiples relaciones con una misma columna y hemos visto las problemáticas que nos surgen a partir de entonces. En la próxima entrada estaremos respondiendo a las incógnicas que nos han quedado, para ello vamos a utilizar el Lenguaje de Expresiones DAX para trabajar con medidas dentro de Modelos de datos creados con PowerPivot o Modelo Tabular de SQL Server 2012.

Tags: , , ,

Deja un comentario

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

A %d blogueros les gusta esto: