PDA

Ver la Versión Completa : consulta en firebird


cahosoft
07-03-2007, 00:33:05
hola todos.
necesito hacer una consulta en sql que me puestr la posicion del registro...
voy a ver si me explico bien...
supongamos que quiero mostrar las datos de la tabla estudiante:
estudiante:
id integer
cedula varchar
nombre varchar
dir varchar

con select * from estudiante
me sale estos datos
id cedula nombre dir
15 00001 carlos k20-20
16 00041 juan k40-20
40 00114 pedro k550-20
30 00117 lucas k24-20
20 02274 maria k2542-20


hay alguna mera en sql de que salgo al posision del regostro....asi...
poasicion id cedula nombre dir
1 15 00001 carlos k20-20
2 16 00041 juan k40-20
3 40 00114 pedro k550-20
4 30 00117 lucas k24-20
5 20 02274 maria k2542-20

disculpe la consulta...pero los usuario vaces pinden cosas

jhonny
07-03-2007, 00:51:36
Personalmente y si no tienes un campo "Conteo" o algo así lo veo complicado desde el propio motor, Quizá con alguna UDF... Pero Seguramente sera mas sencillo si lo haces desde el lenguaje de programación.

TJose
07-03-2007, 03:32:26
La forma más simple que se me ocurre es a través de procedimientos almacenados. Por ejemplo:


create procedure spInf_Estudiantes
returns(
posicion integer
id integer
cedula varchar(10)
nombre varchar(50)
dir varchar(30))
as
declare variable vContador integer;
begin
vContador = 0;
for
select
id,
cedula,
nombre,
dir
from
estudiantes
into
:id,
:cedula,
:nombre,
:dir
vContador = vContador + 1;
posicion = vContador;
do
begin
suspend;
end
end^

Debería funcionar

Saludos
TJose

Lepe
07-03-2007, 13:09:45
¿por qué usar vContador? La misma variable posición nos serviría para realizar esos cálculos.

saludos

jhonny
07-03-2007, 14:50:58
Ahhh, claro¡¡¡, definitivamente a veces uno se ciega para dar una respuesta es obvio que con el procedure la cosa ira bien.

TJose
07-03-2007, 16:51:07
¿por qué usar vContador? La misma variable posición nos serviría para realizar esos cálculos.

Totalmente de acuerdo Lepe

Saludos
TJose

cahosoft
08-03-2007, 21:56:59
Voy a Probar...gracias por todo