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.

El contexto de consulta hace referencia al subconjunto de datos que se crean implícitamente para cada celda en una tabla dinámica, dependiendo de los encabezados de columna y fila. Al colocar una medida u otro campo de valor en una celda en una tabla dinámica, el motor de PowerPivot examina los encabezados de columna y fila, segmentos de datos y los filtros de informe para determinar el contexto. A continuación, PowerPivot realiza los cálculos necesarios para rellenar cada celda en la tabla dinámica. El conjunto de datos que se recupera es el contexto de la consulta para cada celda. Dado que el contexto puede cambiar según dónde se coloque la fórmula, los resultados de esta también cambian según si se utiliza en una tabla dinámica con muchas agrupaciones y filtros, o en una columna calculada sin filtros y un contexto mínimo.

Veamos la suma de todos los valores de la columna Importe de la tabla DetalleOrden. Si utilizamos esta fórmula en una columna calculada dentro de la tabla DetalleOrden, los resultados para la fórmula serán los mismos que para la tabla completa, porque el contexto de la consulta para la fórmula siempre es el conjunto completo de datos de la tabla DetalleOrden. Se trata de la suma total de todas las órdenes de venta de todos los productos, de todos los colores, líneas y modelos, en todas las fechas en todos los territorios, etc. Aquí no tenemos un error; pero sí algo bastante poco útil.

Normalmente lo que necesitamos no es esto, sino obtener el importe correspondiente a un color, modelo, año, territorio determinado, o alguna combinación de estos y, posteriormente, obtener un total general.

Esto es justamente lo que habíamos preparado antes, es lo que nos está devolviendo la medida implícita SumaImporte o la medida explícita MedidaSumaImporte.

Filtramos por etiqueta de filas, cambia el dato.

Filtramos utilizando un segmentador, vuelve a cambiar el dato, está doblemente filtrado, una vez por tabla Producto y otra vez por tabla Orden.

Y filtramos nuevamente, esta vez, utilizamos un filtro de informe de tabla dinámica, agregando un campo filtrado al panel Filtros.

El resultado de aplicar tres filtros es que el dato se re-calcula, porque se adapta al contexto que la consulta va definiendo.

Ese es el aspecto final de los paneles de la Tabla dinámica.

En una tabla dinámica, es fácil cambiar el contexto de consulta, agregando o quitando los encabezados de columna y fila, y agregando o quitando las segmentaciones de datos. Podemos crear una fórmula como la anterior, en una medida, y, a continuación, colocarla en una tabla dinámica. Cada vez que agregue encabezados de columna o fila a la tabla dinámica, cambie el contexto de la consulta en el que se evalúe la medida. Las operaciones de segmentación de datos y filtrado también afectan al contexto. Por consiguiente, la misma fórmula, que se utiliza en una tabla dinámica, se evalúa en un contexto de la consulta diferente para cada celda.

De esta forma, hemos visto el efecto del contexto de consulta, que además refuerza la importancia del trabajo con medidas y lo simple que puede ser obtener distintos resultados, a demanda, sin hacer ninguna modificación en la expresión DAX.

En la próxima entrada estaremos hablando del contexto de filtro, otro aspecto importante en el tratamiento de contextos que ocurre cuando trabajamos con el Lenguaje de Expresiones DAX en Modelos Tabulares y/o PowerPivot con SQL Server 2012.

Deja una respuesta

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. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.