Tema 7. Tablas de referencias cruzadas (I) |
Introducción |
Por ejemplo queremos obtener las ventas mensuales de nuestros empleados. Tenemos que diseñar una consulta sumaria calculando la suma de los importes de los pedidos agrupando por empleado y mes de la venta. La consulta sería: SELECT rep as empleado, month(fechapedido)
as mes, sum(importe) as vendido El resultado sería la tabla que aparece a la derecha: |
|
La consulta quedaría mucho más elegante y clara presentando los datos en un formato más compacto como el siguiente: |
|
Pues este último resultado se obtiene mediante una consulta de referencias cruzadas. Observar que una de las columnas de agrupación (rep) sigue definiendo las filas que aparecen (hay una fila por cada empleado), mientras que la otra columna de agrupación (mes) ahora sirve para definir las otras columnas, cada valor de mes define una columna en el resultado, y la celda en la intersección de un valor de rep y un valor de mes es la columna resumen, la que contiene la función de columna (la suma de importe). Las consultas de referencias cruzadas se pueden crear utilizando el asistente, es mucho más cómodo pero es útil saber cómo hacerlo directamente en SQL por si queremos variar algún dato una vez realizada la consulta con el asistente o si queremos definir una consulta de referencias cruzadas que no se puede definir con el asistente.
|
La sentencia TRANSFORM es la que se utiliza para definir una consulta de referencias cruzadas. La sintaxis es la siguiente: |
![]() |
|
La sentencia quedaría de la siguiente forma: TRANSFORM Sum(importe) Lo mejor para montar una consulta de referencias cruzadas en SQL es pensar la sumaria normal y luego distribuir los términos según corresponda. |
![]() |
![]() |
![]() |
Pag.7.1
|
© aulaClic. Todos los derechos reservados.
Free Computer tutorials .
Prohibida la reproducción por cualquier medio.
Julio-2001.aulaClic.com |
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.