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

[B]como unir los registros de una consulta en una sola linea [/B]

Estas en el tema de [B]como unir los registros de una consulta en una sola linea [/B] en el foro de Mysql en Foros del Web. mi problema es el siguiente yo realizo un query donde traigo el codigo de quipo el consumo de acpm y la fecha que realizo el ...
  #1 (permalink)  
Antiguo 25/04/2008, 07:36
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
Información [B]como unir los registros de una consulta en una sola linea [/B]

mi problema es el siguiente yo realizo un query donde traigo el codigo de quipo el consumo de acpm y la fecha que realizo el consumo, al hacer la conuslta me muestra lod datos de la siguiente manera:

cod equipo-consumo-fecha
bobcat_260 15 Glns 2008-04-19
bobcat_260 11 Glns 2008-04-20
bobcat_260 18 Glns 2008-04-21

lo que quiero hacer es mostrar los campos consumo y fecha en una sola linea correspondiente al codigo equipo, para que quede asi:


cod equipo---consumo----fecha---consumo----fecha---consumo----fecha
bobcat_260----- 15 Gln--- 2008-04-19 --11 Gln -- 2008-04-20 -18 Gln - 2008-04-21

necesito que se muestren los resultados de la manera expuesta, aqui les coloco el query que utlizo:

Select dtc.codigo_equipo, ACPM, fecha
From reporte as r , detalle_equipos_consumo as dtc
where fecha BETWEEN '2008-04-12' and '2008-04-15' and
r.codigo_equipo='bobcat_260'and r.codigo_reporte=dtc.codigo_reporte
order by codigo_equipo asc;


espero me puedan colaborar.
  #2 (permalink)  
Antiguo 25/04/2008, 08:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: [B]como unir los registros de una consulta en una sola linea [/B]

Este es un problema que realmente deberías resolver con programación y tags html, pero, puesto que deseas hacerlo con MySQL, te propongo lo siguiente, si bien reconozco que la etiqueta no saldrá como quieres:

SELECT concat(cod_equipo,': ',group_concat(CONCAT(consumo,"--"), CONCAT (fecha,"") separator '--'), '.') AS equipo__consumos__fechas FROM nombretubase group by cod_equipo

Sólo en el caso de que tuvieras incluido el dato de consumo como numérico tendrías que hacer el cast a character, algo que yo no he probado.
  #3 (permalink)  
Antiguo 25/04/2008, 11:05
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
Re: [B]como unir los registros de una consulta en una sola linea [/B]

hola jurena:
la verdad este resultado lo quiero mostrar en un msflexgrid en VB 6, el dato consumo es numerico.trate de usar el query que me diste pero me sale un error que no reconoce la funcion concat.

en realidad lo que deseo es que cada campo "consumo" y "fecha" se coloquen consecutivamente en la misma linea de su cod_equipo correspondiente, y no concatenado esos separadores los puse para que se vieran mas o menos el orden, pero no para mostralos.

que en ves de mostrarlo como me lo trae el MySQL:

cod equipo consumo fecha
bobcat_260 15 Glns 2008-04-19
bobcat_260 11 Glns 2008-04-20
bobcat_260 18 Glns 2008-04-21

mostrarlo asi:
cod equipo consumo fecha consumo fecha consumo fecha
bobcat_260 15 Gln 2008-04-19 11 Gln 2008-04-20 18 Gln 2008-04-21

espero que me entiendas, necesito colocar cada campo en una columna y no concatenado pero en una sola linea , he tratado por programacion y tampoco he podido.

espero me puedas colaborar, gracias.
  #4 (permalink)  
Antiguo 25/04/2008, 11:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: [B]como unir los registros de una consulta en una sola linea [/B]

Clavijo83,
No sé por qué no reconoce el concat, aunque tal vez tenga que ver con el espacio de separación con el paréntesis cuando lo introduces en programación: a mí me ha funcionado la consulta sin problema lanzada desde PHPMyAdmin. Lo del campo numérico sí es un problema, pues hay que hacer el cast a character.
Pero ya que no es una línea de texto lo que quieres, sino columnas y puesto que trabajas con VB, te diré que eso ya no es de este foro, sino del de VB. Lo que, en mi opinión, debes hacer es, una vez te traes los datos de la base (algo que ya tienes con tu consulta), colocar cada uno en una celda de una tabla y eso hacerlo con programación.

mira este hilo y pide ayuda en el foro VB

http://www.forosdelweb.com/f69/faqs-vb6-222289/
concretamente en el permalink #20

Última edición por jurena; 25/04/2008 a las 12:15
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 13:18.