Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/08/2014, 23:49
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: dibujar una tabla

Lo que quieres es rotar una tabla.

La herramienta que estas buscando se llama Pivote, mas concretamente, un Pivote dinamico.

Por desgracia para ti, muy pocos motores soportan pivotes dinamicos y mysql no es uno de ellos.
Lo que puedes hacer, es simular este comportamiento construyendo el pivote dinamicamente (suena parecido, pero no es lo mismo que un pivote dinamico).

Para el caso particular de tu ejemplo, puedes ver una demo en: http://sqlfiddle.com/#!2/f18ffb/17 donde esta el codigo de la consulta que te devuelve el resultado esperado.

Los pivotes no son un tema para tratarse al inicio de la curva de aprendizaje, desconozco tu nivel de conocimiento de bases de datos, pero no es un tema para tomarse a la ligera y que requiere de cierta practica para comprender su funcionamiento.

Por otro lado, en el ejemplo que te pongo no se hace uso de pivotes, solo se los simula.

Como complemento, puede que encuentres interesante este articulo: http://buysql.com/mysql/14-how-to-au...ot-tables.html

Y este tema de stackoverflow en el cual me he basado para construir la query del ejemplo.

Saludos.

PD: Si sientes curiosidad por los pivotes y su funcionamiento, puedes ver ejemplos de funcionamiento en motores que si lo soportan, por ejemplo:

SQL Server:
Pivote
Pivote Dinamico

Oracle:
Pivote
Implementacion de pivote dinamico

Otros motores que carecen de esta caracteristica, tienen formas de simularlo diferentes a mysql por ejemplo:

Firebird:
https://firebird21.wordpress.com/tag/pivot-table/

Otros nombres para buscar la caracteristica solicitada son: pivot table - tabla multidimensional - cross-table
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios