Nueva columna con numero de linea en sql
Reconozco que no soy un guru de sql pero llevo 3 dias calentandome la cabeza sin encontrar la solucion.
Necesito una sentencia sql que de esto ... ID Nombre ----------------- 1 PEPE 2 JUAN 3 ALVARO Me devuelva CONT ID Nombre ------------------------- 1 3 ALVARO 2 2 JUAN 3 1 PEPE Es decir que ordenando por la columna que yo quiera en este caso Nombre, me devuelva una columna mas con el numero de orden en que se muestra el resultado. La razon es que uso un listview para mostrar los resultados de la sentencia, en modo ownerdata, y para situarme sobre el registro a mostrar en cada momento Query.recno se hace lentisimo a partir de 20000 registros y he comprobado que con locate es mucho mas rapido. Gracias. |
Indistintamente de que hagas el sql como quieres... lo que es una barbaridad es tener más de 20.000 registros en un listview, ¿para qué se necesita hacer eso? :confused:, ¿por qué no filtras antes los registros y trabajas sólo con los que realmente necesitas?, dudo que alguien se ponga en la pantalla a mirar 20.000 registros, no?
|
Creeme los necesito.
Ademas ya lo he probado usando locate en la clave para mostrar la posicion en el listview como he dicho en ownerdata "no lo meto en memoria" y funciona de perlas. |
Ahora mismo no se me ocurre cómo, aunque seguramente se pueda hacer.
Lo que se me ocurre es un procedimiento almacenado que le pases los parámetros 'desde' y 'hasta' (por ejemplo) y que haga un bucle con una variable que también la devuelva en la salida. |
Hola Playwithfire, la consulta que se me ocurre es esta, pero el detalle que le veo es que solo te va a enumerar bien si se utiliza un campo que no se repite, en el caso de tu campo nombre puede haber repetidos, en ese caso se va a repetir el mismo número, pruebalo y nos dices si te sirve.
Saluditos |
Se me queda en un bucle aparentemente infinito, en una tabla de 800 registros :(
Lo maximo que he conseguido ha sido que todos los registros me ponga 1 asi SELECT (SELECT ROWNUM FROM Y0899 T1 )AS CONT,Description FROM Y0899 T2 ORDER BY Description Se podria conseguir editando los fieldefs del Query? Añadiendo alguno que calcule esto? Si es asi alguien me podria orientar? Nada no hay forma, llevo toda la mañana machacando el tema. Alguien mas preparado saber por donde puedo tirar? |
La franja horaria es GMT +2. Ahora son las 12:29:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi