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 27-01-2011
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
número de fila de una consulta.

buenas tardes me gustaria saber si hay alguna forma de enumerar las filas del resultado de una consulta hecha en firebird.
ejemplo

el resultado original de una consulta es.

nombre tel
______________
pepe 100
maria 200
claudia 102
pedro 334


y quiero me salga así

con nombre tel
___________________
1 pepe 100
2 maria 200
3 claudia 102
4 pedro 334


mil gracias.
__________________
JaiMelendez
Responder Con Cita
  #2  
Antiguo 27-01-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Dependiendo del componente que uses para traer los resultados podrías usar un campo calculado al que le asignas la propiedad RecNo del dataset en el evento OnCalcFields.

// Saludos
Responder Con Cita
  #3  
Antiguo 28-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También puedes usar un 'store procedure', por ejemplo, si tenemos la tabla:
tbProvincias
codigo integer
nombre varchar(32)

Creamos el store procedure:

Código SQL [-]
SET TERM ^ ;

CREATE or alter PROCEDURE prueba  
RETURNS 
 ( contador integer, codigo integer, nombre varchar(32) )
AS 
BEGIN
  contador = 0;
  for select codigo, nombre
      from TBPROVINCIAS
      order by nombre, codigo
      into :codigo, :nombre
  do 
  BEGIN
    contador = :contador+1;
    suspend;  
  end
END^

SET TERM ; ^

Lo ejecutamos:
Código SQL [-]
select * from prueba

Y el resultado será algo así:

Responder Con Cita
  #4  
Antiguo 28-01-2011
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
gracias por su respuesta, la idea es que en la misma consulta o en el mismo SQL me muestre el número de cada registro.
__________________
JaiMelendez
Responder Con Cita
  #5  
Antiguo 28-01-2011
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
simplemente en la consulta no se puede ?
si necesidad de procedimientos almacenados.
__________________
JaiMelendez
Responder Con Cita
  #6  
Antiguo 28-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Nunca lo he visto, aunque lo mismo hay algún rebuscado truco para poder conseguirlo. Lo dudo, pero todo es posible.
Responder Con Cita
  #7  
Antiguo 28-01-2011
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
bueno muchisimas gracias, de todas forma sigo atento a sus respuestas.
__________________
JaiMelendez
Responder Con Cita
  #8  
Antiguo 31-01-2011
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
no estoy seguro si funciona en Interbase, pero en Sql Server funciona.

Select Rank= COUNT(*), c1.id_cliente, c1.nombre, c1.fechanac
from Cliente c1, Cliente c2
where c1.id_cliente >= c2.id_cliente
group by c1.id_cliente, c1.nombre, c1.fechanac
order by Rank
Responder Con Cita
  #9  
Antiguo 05-02-2011
ocram ocram is offline
Miembro
 
Registrado: nov 2006
Posts: 25
Poder: 0
ocram Va por buen camino
Que tal amigo, no sé si te sirva pero en SQL server existe una sentencia llamada ROW_NUMBER y en tu caso quedaria asi

SELECT ROW_NUMBER() OVER (ORDER BY NOMBRE) AS con, NOMBRE, TEL
FROM DATOS

y aun asi no cumpliria con todas tus necesidades ya que esta funcion le asignaria un numero pero basado en su orden alfabetico "(order by nombre)"

entonces te quedaria asi:

con nombre tel
___________________
4 pepe 100
2 maria 200
1 claudia 102
3 pedro 334
Responder Con Cita
  #10  
Antiguo 07-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Prueba así:
Código SQL [-]
Select @Fila := @Fila + 1 as Nro_de_Fila,t.Nombre, t.Tel From MyTable t, (SELECT @Fila:=0) f;
A mí me funciona perfectamente en MySQL...
Ojalá te sirva...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
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
Numero de fila en DBGrid Colgueit Conexión con bases de datos 28 16-03-2007 18:04:35
Mostrar numero de fila DBGrid danielcordovahe Varios 2 20-09-2005 01:00:21
Número de Fila en Report Manager KayserSoze Impresión 1 20-02-2004 20:57:11
numero de fila en dbgrid manu Varios 5 18-12-2003 21:06:14
Numero de fila en TSQLDataSet andre Conexión con bases de datos 2 26-06-2003 16:52:42


La franja horaria es GMT +2. Ahora son las 11:00:06.


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