Archivo de la categoría: SQL Server 2012

Serie Lenguaje de expresiones DAX

Los entradas de este blog que se han dedicado a la serie Lenguaje de expresiones DAX son:

1.- Introducción a serie Lenguaje de expresiones DAX

2.- Lenguaje de expresiones DAX, primeros pasos

3.- Importar datos a PowerPivot para modelar con DAX

4.- Crear Columna calculada con expresión DAX

5.- Crear Medidas con expresión DAX – Parte 1

6.- Relaciones entre tablas y medidas implícitas

7.- Crear Medidas con expresión DAX – Parte 2

8.- Crear Medidas con expresión DAX – Parte 3

9.- Introducción a contextos en DAX

10.- Contexto de filas en DAX

11.- Contexto de consulta en DAX

12.- Contexto de filtro en DAX

13.- Relaciones entre tablas en DAX – RELATED

14.- Relaciones entre tablas en DAX – RELATEDTABLE

15.- Relaciones entre tablas en DAX – USERELATIONSHIP – Parte 1

16.- Relaciones entre tablas en DAX – USERELATIONSHIP – Parte 2

La serie no está terminada, continuaremos…

Relaciones entre tablas en DAX – USERELATIONSHIP – Parte 2

Hoy vamos a dar solución a las problemáticas planteadas en la entrada anterior.

Vamos a crear para ello medidas que nos ayuden a ilustrar este ejemplo. Lo primero será crear las ventas según la Fecha Activa. Vamos a utilizar una función, que puede ser conocida de otras herramientas BI, TOTALYTD(). Sigue leyendo

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. Sigue leyendo

Relaciones entre tablas en DAX – RELATEDTABLE

Hoy vamos a continuar hablando de relaciones, en este caso vamos a mostrar la utilidad de una función que aprovecha las relaciones entre tablas y evalúa una expresión de tabla en un contexto modificado por los filtros dados. Dicho así, igual no se ha entendido mucho, mejor lo vemos con un ejemplo.

Antecedentes

Supongamos que queremos ver los Importes por Territorios. Esto sería fácil, según lo aprendido antes. Basta con seleccionar las dos columnas y como las tablas están relacionadas tendríamos el resultado. No necesitamos saber DAX para esto.

Sobre esta medida implícita no podemos calcular KPIs, primer problema. Para solucionarlo, podemos utilizar la medida que ya existe, que es explícita y utilizarla, el resultado sería el mismo en cuanto a valores y además ya podríamos crear KPIs, solucionado.

Esto es correcto, tenemos una medida y con una única medida analizamos el dato según el gusto del usuario, hoy por Territorios, mañana por colores, etc. Hay que tener en cuenta que  según los distintos contextos que se apliquen a las distintas tablas tendríamos datos diferentes.

Crear columna calculada

Nuestro objetivo hoy es contar con una columna, dentro de la tabla Territorio, que nos devuelva los importes para cada Territorio. Lo que queremos es que el usuario para el que estamos modelando los datos no tenga que buscar la información relativa a los Territorios en otro sitio que no sea en su propia tabla.

Nuevamente, la columna encargada de establecer la relación no está visible, lo que según nuestras necesidades es correcto.

Ya sabemos cómo crear una columna calculada, veamos la fórmula:

Empezamos utilizando una de las funciones de agregado, tipo X, que son las que aceptan argumentos de tabla. La tabla la va a recibir en este caso a través de la función RELATEDTABLE() que es quien se va a encargar de filtrar los registros que tiene que utilizar en cada caso.

La expresión final es: =SUMX(RELATEDTABLE(DetalleOrden);DetalleOrden[Importe])

En este caso lo que ha ocurrido es que para cada valor de Territorio, la expresión ha obtenido la tabla intermedia (subconsulta o como se quiera entender) con los registros correspondientes a ese territorio en la tabla DetalleOrden, y con ellos sea aplicado el agregado, en este caso la suma.

Visualizar columna calculada

A partir de ahora el usuario cuenta con los datos que necesita dentro de esta tabla.

Sobre esta columna podemos realizar todas las operaciones que deseemos. La hemos visto funcionando como medida desde el panel valores, pues bien, además, podemos utilizarla para filtrar desde la tabla, o como segmentador. Les dejo la imagen donde se aprecia la triple utilización de la columna.

Hoy hemos creado una nueva columna que nos permite almacenar los valores calculados para una expresión dada sobre la que hemos aplicado un filtro.  Para ello nos hemos aprovechado de los agregados tipo X y de la función RELATEDTABLE(). Nuevamente el uso del Lenguaje de expresiones DAX nos ha permitido avanzar en el modelado de nuestros datos para hacerle llegar al usuario un modelo más acorde con sus necesidades. En la siguiente entrada vamos a estar hablando de relaciones múltiples, y de relaciones activas y no activas.

 

Relaciones entre tablas en DAX – RELATED

En estos días estamos tratando temas del Lenguaje de expresiones DAX y su importancia en la creación de modelos de datos con PowerPivot desde Excel 2010 y Modelado Tabular de Analysis Services 2012. Sigue leyendo

Contexto de consulta en DAX

En estos días estamos analizando los contextos existentes en DAX, vimos la importancia de conocerlos y aplicarlos correctamente y vimos el contexto de fila, hoy estaremos hablando del contexto de consulta. Sigue leyendo