Visual Basic - Problema al ordenar registros

Life is soft - evento anual de software empresarial
 
Vista:

Problema al ordenar registros

Publicado por ALH76 (278 intervenciones) el 04/07/2003 20:33:22
Hola a todos, espero q alguien me pueda ayudar a solucionar este problema q tengo.

Pongo esta sentencia:
SQL = "Select * from Pruebas Order By Informe Asc"

El ordenamiento q me da es el siguiente:
CR000109
CR000110
CR0001100
CR0001101
CR0001102
CR000111

El problema es q cuando quiero realizar una busqueda con un intervalo de registros no me da el resultado q deseo, por ejemplo si quiero los informes del 109 al 111 me los arroja pero tambien me manda todo los que estan entre ellos como el 100, 101, etc.

La sentencia q utilizo para ello, es:
SQL = "Select Informe, FechaM, IdTr From Pruebas Where Informe Between "
SQL = SQL & "'" & Inicio & "'" & " And " & "'" & Fin & "'"

La pregunta es: ¿Tienen alguna idea o algun ejemplo de como hacer q me suprima o no me arroje los informes q existe entre 109 y 111?

Se q el ordenamiento es correcto, pero no ecuentro una manera de q resulte con lo q deseo.

Agradezco de antemano su ayuda!!!

Saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema al ordenar registros

Publicado por kikecg (352 intervenciones) el 04/07/2003 21:09:00
Hola.
No sé si será posible, pero para mi lo mas lógico sería que todos los números de informe tuvieran el mismo número de caracteres. De este modo, la ordenación sería:

CR0000109
CR0000110
CR0000111
CR0001100
CR0001101
CR0001102

y te olvidarías del problema.

Si no puedes hacer eso, tendrás que ordenar sólo por los 3 ultimos números de cada informe, pero claro, los resultados pueden ser desastrosos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al ordenar registros

Publicado por ALH76 (278 intervenciones) el 04/07/2003 21:22:11
Desgraciadmente no se puede tener el mismo numero de caracteres ya q los dos primeros numero, comenzando de inzquierda a deracha, es el año, los siguientes dos, es el mes y los ultimos caracteres es un consecutivo, como veras pueden ser solo 10, o bien 100 registros en un mismo mes.

Se me me hace interesante ordenar los registros por cierto numero de caracteres, quiza quitando los dos primero, o sea las letras, puede obtener mejores resultados. Pero como le indico q solo por cierto numero de caracteres debe ordenar los resgitros?.

Te agradezco tu ayuda....saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al ordenar registros

Publicado por kikecg (352 intervenciones) el 04/07/2003 21:38:54
Hola de nuevo.
A ver, aunque los primeros caracteres formen un código con el año y el mes, lo que yo sugiero es que en vez de marcar el registro 1, marques el 0001, el 0002, etc... así sabes que siempre los podrás ordenar.
Lo de ordenar por cierto número de caracteres es mas complicado. De hecho hace un rato me parecía mas sencillo, je. Quizá podrías crearte un array dinámico y, una vez que has leído los registros, metes en cada posición del array la cantidad de caracteres que necesites de cada registro (con las funciones para ello, right o mid). Una vez lleno el array, lo puedes ordenar mediante alguno de los métodos clásicos. La ventaja es que trabajarias directamente con la memoria, que siempre es mas rápida.
Desde luego en una sentencia SQL no se me ocurre ahora mismo como indicarle en el ORDER BY que utilice sólo una parte del campo. No se si eso será posible o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al ordenar registros

Publicado por ALH76 (278 intervenciones) el 04/07/2003 23:22:50
Otra vez, Gracias....

Siguiendo con lo del consecutivo, la verdad es q no depende de mi ordenarlos de esa manera, realmente depende del usuario y me estoy basando en los datos q ya se tiene, de cambiar esa informacion serian demasiados registros ya q la BD ya esta hecha, solo quiero ver informacion d ahi y abrir el archvio en Excel, ya q ese consecutivo en realidad es un nombre de archivo xls. Pero, te agradezco tu comentario.

Esta un poco complicado lo de la sentencia SQL, lo habia pensado en algun momento pero no se me ocurrio nada, de ahi q te haya preguntado como hacerlo.

te gradezco tus comentarios para solucionar este problema...Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al ordenar registros

Publicado por josé carlos (243 intervenciones) el 05/07/2003 01:40:47
puedes conseguir ordenar por un cierto número de caracteres en la SQL

asi puedes conseguir

CLAVE="MID(CAMPO,2,3)="+CHR(34)+VALOR+CHR(34)+" ASC"

"SELECT * FROM ARCHIVO ORDER BY "+CLAVE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar