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

[SOLUCIONADO] agrupar datos mysql y php

Estas en el tema de agrupar datos mysql y php en el foro de Mysql en Foros del Web. Hola buenas tardes tengo una gran duda k no deja de molestar como agrupar una columna que contenga letras ej: Tenngo una tabla llamada datos ...
  #1 (permalink)  
Antiguo 31/10/2013, 16:59
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 15 años, 3 meses
Puntos: 0
agrupar datos mysql y php

Hola buenas tardes tengo una gran duda k no deja de molestar como agrupar una columna que contenga letras ej:

Tenngo una tabla llamada datos

almacen---codigo----folio
----1--------87322-----A0001
----1--------87322-----A0002
----2--------87322-----B0001
----2--------87322-----B0002
----3--------87322-----C0001

lo que quiero que me devuelva mi consulta es

almacen---codigo----folio
----1--------87322-----2
----2--------87322-----2
----3--------87322-----1

me lo hace si lo hago asi independientemente
Código MySQL:
Ver original
  1. FROM datos
  2. WHERE codigo='87322' AND folio LIKE '%A%'
  3. GROUP BY codigo

pero solo me devuelve lo del folio a
almacen---codigo----folio
----1--------87322-----2

y quisiera saber si se puede hacer en una sola consulta con like algo asi

Código MySQL:
Ver original
  1. FROM datos
  2. WHERE codigo='87322' AND folio LIKE '%A%' or folio LIKE '%B%' or folio LIKE '%C%'
  3. GROUP BY codigo
y obtener este resultado

almacen---codigo----folio
----1--------87322-----2
----2--------87322-----2
----3--------87322-----1

Última edición por gnzsoloyo; 31/10/2013 a las 19:05 Razón: Código de programación no permitido en foros de Bases de Datos.
  #2 (permalink)  
Antiguo 31/10/2013, 18:08
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: agrupar datos mysql y php

estimada: duda, el campo que deseas mostrar siempre tiene el string del mismo largo, osea folio siempre tiene 5 caracteres, si fuera asi la consulta que necesitas es esta para que muestre los resultados que necesitas:

Código MySQL:
Ver original
  1. SELECT almacen, codigo, right(folio, 1) from datos where codigo='87322' group by codigo;

y como recomendación, siempre que tengas una tabla y quieras mostrar campos específicos, nombrarlos en la query, así optimizaras tu query para que se ejecute mas rápido, evita el uso del select *, saludos, espero te sirva :)
  #3 (permalink)  
Antiguo 31/10/2013, 18:15
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: agrupar datos mysql y php

muchas gracias por responder raicerk el Right(folio,1) para se utiliza y si campo folio simpre tendra el mismo string de largo
  #4 (permalink)  
Antiguo 31/10/2013, 18:22
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: agrupar datos mysql y php

amiga el right te devuelve una cadena de datos contando los caracteres de derecha a izquierda, como tu tienes el campo folio que posee datos de este estilo "A0002" si quisieras solo mostrar como resultado del campo el ultimo caracter se debes hacerlo con right(folio,1) si aumentas el numero por ejemplo a 2 "right(folio,2)" te devolveria "02" y asi sucesivamente.


dime si te sirvio la respuesta o no, sino para buscar otra alternativa
  #5 (permalink)  
Antiguo 01/11/2013, 03:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: agrupar datos mysql y php

Ilidam,
¿qué sale si escribes esto?
Código MySQL:
Ver original
  1. SELECT almacen, codigo,  COUNT(DISTINCT folio) di
  2.     FROM datos
  3.     WHERE codigo='87322' AND folio LIKE 'A%'
  4.     GROUP BY almacen, codigo
  #6 (permalink)  
Antiguo 01/11/2013, 09:55
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: agrupar datos mysql y php

que tal jurema solo me devuelve lo del folio a
almacen---codigo----di
----1--------87322-----2

y raicerk creo k si me servira de ese modo gracias por responder ambos saludos
  #7 (permalink)  
Antiguo 01/11/2013, 09:59
Avatar de 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, 11 meses
Puntos: 2658
Respuesta: agrupar datos mysql y php

Pues tienes que agrupar tamién por el campo calculado:
Código MySQL:
Ver original
  1. SELECT almacen, codigo,  COUNT(DISTINCT folio) di
  2. FROM datos
  3. WHERE codigo='87322' AND folio LIKE 'A%'
  4. GROUP BY almacen, codigo, folio
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: agrupar, php, select, sql, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:57.