Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2010
Playwithfire Playwithfire is offline
Miembro
 
Registrado: may 2004
Posts: 20
Poder: 0
Playwithfire Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 05-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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? , ¿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?
Responder Con Cita
  #3  
Antiguo 05-05-2010
Playwithfire Playwithfire is offline
Miembro
 
Registrado: may 2004
Posts: 20
Poder: 0
Playwithfire Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 05-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #5  
Antiguo 05-05-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
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.

Código SQL [-]
Select ((Select  Count(*) From Tabla t1 Where t1.nombre < t.nombre) + 1) as Enumerar, t.id, t.nombre
From Tabla t
Order By t.nombre

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 06-05-2010
Playwithfire Playwithfire is offline
Miembro
 
Registrado: may 2004
Posts: 20
Poder: 0
Playwithfire Va por buen camino
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?

Última edición por Playwithfire fecha: 06-05-2010 a las 13:46:39.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
nueva linea en un memo. NSL94 Varios 1 10-07-2007 10:21:56
[DelphiforPhp],agregar una linea nueva a un memo... sakuragi PHP 2 19-06-2007 17:29:20
Columna de numeros de linea de un RichtEdit mazuada Varios 1 03-04-2007 12:03:09
definir linea y columna en un statusbar antonio peña Varios 1 03-10-2006 06:51:38
Número de Línea Ulises Providers 2 21-07-2003 16:29:37


La franja horaria es GMT +2. Ahora son las 18:46:02.


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
Copyright 1996-2007 Club Delphi