elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problemas con ordenación de consulta mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con ordenación de consulta mysql  (Leído 4,911 veces)
DUNEDAI

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problemas con ordenación de consulta mysql
« en: 13 Noviembre 2017, 11:21 am »

Hola, estoy haciendo un programilla en vb6 que trabaja con consulta mysql el caso es que me devuelve unos valores en un mshflexgrid de manera correcta pero no sé como ordenarlos de manera que me interesa, os explico, esta es la tabla de datos que tengo:


Citar
Nombre                              |   Nº Refuerzos             |  Grupo

Rodríguez Guerra, J.M                         1                    Grupo 1
Solana Mentrida, J. C                           2                    Grupo 1
Evo Sánchez, Eva                                1                     Grupo 2
Flores Márquez, Raúl                           1                     Grupo 1
Martinez Guerra, Manuel                      1                    Grupo 2
Bódalo Infante, J. C                               2                   Grupo 1 
Rivero Alto, Susana                              2                   Grupo 2
Flores Peña, Rita                                  1                   Grupo 1


Con la consulta:


Código:
Sql = "select * from PRINCIPAL where Grupos = '" & Variable_Final & "' order by N_Refuerzo, Nombre"

donde Variable_Final son los grupos 1 y 2 me arroja:


Citar
Nombre                              |   Nº Refuerzos             |  Grupo

Evo Sánchez, Eva                                1                     Grupo 2
Flores Márquez, Raúl                           1                     Grupo 1
Flores Peña, Rita                                  1                   Grupo 1
Martinez Guerra, Manuel                      1                    Grupo 2
Rodríguez Guerra, J.M                         1                    Grupo 1
Bódalo Infante, J. C                               2                   Grupo 1 
Rivero Alto, Susana                              2                   Grupo 2
Solana Mentrida, J. C                           2                    Grupo 1

Que está bien, el caso es que lo que necesito es que me haga esto pero me coloque los registros alfabéticamente pero a partir de una letra inicial que yo le facilite, ejemplo si elijo la letra "M"  que me hiciera esto:


Citar
Nombre                              |   Nº Refuerzos             |  Grupo

Martinez Guerra, Manuel                      1                    Grupo 2
Rodríguez Guerra, J.M                         1                    Grupo 1
Evo Sánchez, Eva                                1                     Grupo 2
Flores Márquez, Raúl                           1                     Grupo 1
Flores Peña, Rita                                  1                   Grupo 1
Rivero Alto, Susana                              2                   Grupo 2
Solana Mentrida, J. C                           2                    Grupo 1
Bódalo Infante, J. C                               2                   Grupo 1

Osea, que colocara alfabéticamente a partir de una letra inicial los que tienen 1 refuerzo, y que cd llegara a la Z volviera a empezar, y seguidamente los que tengan 2 refuerzos de igual forma

No sé si me he explicado bien...

Espero vuestra ayuda y gracias de antemano


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Problemas con ordenación de consulta mysql
« Respuesta #1 en: 13 Noviembre 2017, 16:31 pm »

Los métodos de ordenación específicos que a uno s ele ocurra, son amanuense. Es decir debe currárselos uno mismo.

Quizás logres algo más próximo a tus deseso con "Group by", pero sinceramente no estoy muy puesto en mySql.

Mi consejo es que si ya logras tener casi ordenado el tema con la consulta, antes de presentar los datos al usuario tu termines de ordenar los registros a mano, por ejemplo a continuación te expongo una solución sencilla de aplicar...

Es claro que una consulta única, ordena todos los registros que encuentre, lueog una forma de lograr lo que quieres es hacer varias consultas seguidas, más selectivas...
Citar
bucle para k desde 1 hasta maxRefuerzos
    select... ... where refuerzos=k ...
    Si hierarqFlexgridOculto tiene registros
        Añadir estos registros al hflexgrid publico (la consulta previa se envía a uno oculto)
    fin si
fin bucle
vaciar hierarqflexgridoculto.
Su única pega es que serán varias llamadas, es una sobrecarga mayor que si se hace una única llamada, pero salvo que sea una BD gigante, no debería notarse ningún retraso apreciable, si fuera el caso, obtén todos los registros de una sola vez y luego reordena tú mismo con código. Vendrá a tardar más o menos lo mismo pero con menos sobrecarga en la BD y el servidor (suponiendo que sean diferentes equipos, y ese programa esté en el del cliente).


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines