Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/09/2008, 05:49
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta y maquetación

No. La primera pregunta no se pede responder por SQL porque lo que quieres lograr es semejante a una tabla inversa, al modo de una matriz inversa. Eso no es posible en SQL, ya que lo que te devuelve es una TABLA, y como tal, contiene los atributos (columnas), en forma horizontal, y los valores (registros) en forma vertical (creo que MSQL Server tenía una función semejante en su versión 7)...
Lo que quieres lograr es algo parecido a un reporte.
Eso habitualmente se genera a través de las extensiones que los motores (Oracle, MSSQLServer, MySQL, DB2, Postgre, Firebird, etc.) le agregan a la funcionalidad del SQL puro. Pero no pertenecen al SQL en sí.
Por otro lado, la única funcionalidades que incorpora MySQL que se puede acercar a lo que deseas, es el WITH ROLLUP en los GRIOUP BY, que de todos modos no están pensados para eso.
El problema básico es que pretendes alternar en una misma columna de respuesta los resultados de dos columnas distintas... Algo que solamente podrías intentar lograr a través de un STORE PROCEDURE que usase dos CURSOR anidados para crear una tabla temporal que genere el reporte.
Demasiado complicado.
Es muchísimo más sencillo implementarlo en la aplciación (web) que estás trabajando...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)