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

Ordenar tabla teniendo en cuenta campo identificativo

Estas en el tema de Ordenar tabla teniendo en cuenta campo identificativo en el foro de Mysql en Foros del Web. Hola a todos: Tengo una consulta algo compleja pero no encuentro como hacerla, la cuestion es la siguiente , tengo esta tabla: ahora viene el ...
  #1 (permalink)  
Antiguo 16/01/2013, 04:55
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Ordenar tabla teniendo en cuenta campo identificativo

Hola a todos:
Tengo una consulta algo compleja pero no encuentro como hacerla, la cuestion es la siguiente , tengo esta tabla:




ahora viene el problema quiero ordenarla por ejemplo mediante empresa ,pero que me mantenga la correlacion de idem es decir por ejemplo haciendo la siguiente sentencia
select * from empresas group by idem order by empresa , me da esto


pero necesito que me aparezca lo siguiente:


a ver si alguien lo puede resolver , gracias
  #2 (permalink)  
Antiguo 16/01/2013, 05:27
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Ordenar tabla teniendo en cuenta campo identificativo

Has de usar el comando Order by de SQL para ordernar, primero por un campo y luego por otro.

Si te miras la documentación explican de forma sencilla como hacerlo ;)
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 16/01/2013, 06:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ordenar tabla teniendo en cuenta campo identificativo

Cita:
Iniciado por Matracca Ver Mensaje
pero necesito que me aparezca lo siguiente:


a ver si alguien lo puede resolver , gracias
La consulta no es compleja, el problema es que no pareces concoer la diferencia entre GROUP BY y ORDER BY.
Cuando haces:

Código MySQL:
Ver original
  1. FROM empresas
  2. GROUP BY  idem
  3. ORDER BY empresa
Precisamente le estás indicando que elimine toda repetición del mismo "idem", por lo que toma el primer registro que encuentra en cada caso, y descarta el resto.
Es evidente que si quieres esa tabla resultado, no tiene sentido que uses el GROUP BY.

Usando tu misma consulta sería:
Código MySQL:
Ver original
  1. FROM empresas
  2. ORDER BY idem, empresa
O bien, podrías hacer uno en un orden y el otro en otro orden:
Código MySQL:
Ver original
  1. FROM empresas
  2. ORDER BY idem DESC, empresa ASC
__________________
¿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: group-by, order-by
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 11:41.