Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Crear Select con resultado en forma Lineal

Estas en el tema de Crear Select con resultado en forma Lineal en el foro de Mysql en Foros del Web. Buenas tardes. Es un gusto, para mi saludarles. Veran, tengo una duda y quisiera pedir de su valiosa colaboracion al respecto. Les explico. Tengo el ...
  #1 (permalink)  
Antiguo 27/10/2014, 14:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 14 años, 4 meses
Puntos: 1
Pregunta Crear Select con resultado en forma Lineal

Buenas tardes.

Es un gusto, para mi saludarles.

Veran, tengo una duda y quisiera pedir de su valiosa colaboracion al respecto. Les explico.

Tengo el siguiente select:

Cita:
SELECT CONCAT(C.nombre,' ',C.apellido) as Nombre, E.entregable, Es.estatus, Es.fecha FROM colaboradores C, Entregables E, Estatus Es
WHERE C.id = E.id_colaborador and E.id = Es.id_entregable and E.frecuencia = 1
El resultado es el siguiente:

Código:
Responsable     |        Indicador   |     Fecha

Jorge                      XXXXXX             01/01/14
Jorge                      XXXXXX             01/02/14
Jorge                      XXXXXX             01/03/14
Jorge                      JJJJJJ             01/01/14
Jorge                      JJJJJJ             01/02/14
Carlos                     ZZZZZZ             01/01/14
Carlos                     ZZZZZZ             01/02/14
Ahora, si se fijan solo tengo dos personas y ellos solon tienen tres indicadores, el punto es que quisiera hacer un select que me permitiera mostrarlo de la siguiente manera.


Código:
Responsable     |          Indicador   |    Mes 1     |   Mes 2     |     Mes 3
Jorge                      XXXXXX          01/01/14     01/02/14     01/03/14
Jorge                      JJJJJJ          01/02/14     01/02/14     01/03/14
Carlos                     ZZZZZZ          01/01/14     01/02/14     01/03/14


Si se fijan el resultado ya no es horizontal, sino que vertical. Espero me haya dado a entender y me puedan ayudar al respecto.

Atentamente.
  #2 (permalink)  
Antiguo 28/10/2014, 02:11
 
Fecha de Ingreso: julio-2013
Mensajes: 87
Antigüedad: 9 años, 7 meses
Puntos: 9
Respuesta: Crear Select con resultado en forma Lineal

Hola,

¿Cómo sabes el número máximo de filas que te va a devolver por cada responsable e indicador? Lo mejor es que una vez obtenido el resultado lo manejes con algún lenguaje como PHP, por ejemplo.

Saludos.
  #3 (permalink)  
Antiguo 28/10/2014, 07:43
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Crear Select con resultado en forma Lineal

Hola, buenos dias.

Fijate que de hecho, eso he estado intentando, te mostrare.
Cita:
Editado: Codigo de programacion no permitido en Foros de BBDD.
Leer las normas del foro, por favor.
En el primer select extraigo la informacion de los indicadores, y linealmente con en el mismo agrego los meses que existen.

En el segundo y tercer select trato de alinearlos para que el resultado sea horizonta, pero lastimosamente, no logro conseguirlo :(

Alguna sugerencia de como poder moldear la data desde PHP???...

Última edición por gnzsoloyo; 28/10/2014 a las 08:32
  #4 (permalink)  
Antiguo 28/10/2014, 08:25
 
Fecha de Ingreso: julio-2013
Mensajes: 87
Antigüedad: 9 años, 7 meses
Puntos: 9
Respuesta: Crear Select con resultado en forma Lineal

¿Qué es lo que te muestra en pantalla haciéndolo de esta forma que lo estás manejando?
  #5 (permalink)  
Antiguo 28/10/2014, 10:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Crear Select con resultado en forma Lineal

Pues, lo que me muestra es lo siguiente:

En la base de datos, tengo registros para oct 14, nov 14, dic 14.
Código:
Responsable     |          Indicador   |    Mes 1     |   Mes 2     |     Mes 3
Jorge                      XXXXXX           01/01/14    
Jorge                      XXXXXX           01/02/14     
Jorge                      XXXXXX           01/03/14
Jorge                      JJJJJJ           01/02/14     
Carlos                     ZZZZZZ           01/01/14   
Carlos                     ZZZZZZ           01/02/14
Como podras ver, en el resultado del select me aparece los indicadores con su fecha, pero lamentablemente me aparece hacia abajo y en los demas meses, no me aparece nada.
  #6 (permalink)  
Antiguo 28/10/2014, 11:51
 
Fecha de Ingreso: julio-2013
Mensajes: 87
Antigüedad: 9 años, 7 meses
Puntos: 9
Respuesta: Crear Select con resultado en forma Lineal

Prueba a hacer la siguiente SQL a ver si te sirve:

Código MySQL:
Ver original
  1. SELECT CONCAT(C.nombre,' ',C.apellido) as Nombre, E.entregable, Es.estatus, group_concat(Es.fecha separator " - ")
  2. FROM colaboradores C, Entregables E, Estatus Es
  3. WHERE C.id = E.id_colaborador and E.id = Es.id_entregable and E.frecuencia = 1
  4. GROUP BY 1, 2, 3
Una vez hecho esto utilizas en PHP una función que te recorra el resultado y divides el campo fecha según el separador utilizado, en este caso ' - '.

Pruébalo y me cuentas.

Saludos.
  #7 (permalink)  
Antiguo 28/10/2014, 16:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Crear Select con resultado en forma Lineal

Maestro, era lo que necesitaba.

Me sirvio de mucha esta funcion del MySql, y con PHP moldie la informacion para que saliera de forma horizontal.

Te agradezco, y lastima que no puedo poner el codigo PHP para que lo vean alguien,
Cita:
Editado: Politica de Uso 2.3
Gracias por el apoyo.

Última edición por gnzsoloyo; 28/10/2014 a las 17:27

Etiquetas: forma, resultado, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:13.