FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Seleccionar primer y ultimo registro
Hola a todos, Tengo Firebird 2.0 y necesito realizar en un mismo SELECT el primer y ultimo registro. Gracias
|
#2
|
||||
|
||||
Si se trata del primer y último registro respecto al orden de un campo o campos en particular, se me ocurre que podrías usar una unión:
// Saludos |
#3
|
|||
|
|||
Gracias por la respuesta, tengo otra duda se que firebirs tiene LAST, en que parte se utiliza?
|
#4
|
|||
|
|||
select [FIRST]/[LAST] <---- aqui en el ejemplo que te ponen aparece despues de SELECT
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#5
|
||||
|
||||
Cita:
Cita:
Código SQL [-]select a from gnull order by a asc nulls last; La sentencia LAST la tiene los TDataSet en Delphi. Si estoy equivocado alguien que me corrija. Hasta luego.
__________________
Gracias, Rolphy Reyes |
#6
|
||||
|
||||
No seré yo quien te corrija, pues, de hecho, yo ni siquiera conozco Firebird. Pero como sea que busqué "Firebird SELECT FIRST" en Google y encontré el comando, más no así (al menos a primera vista) con LAST, fue que puse el ordenamiento inverso para la segunda parte.
// Saludos |
#7
|
||||
|
||||
yo he utilizado el last, aunque se utiliza haciendo referencia a la tabla o query en cuestion
y lo que hace es poner el cursor en el último registro de la tabla o query seleccionado
y este pone el cursor en el primer registro... y con esto avanzas un registro Salu2
__________________
BlueSteel |
#8
|
|||
|
|||
Hola
Es que a raíz del título de la pregunta: Seleccionar primer y ultimo registro Lo que roman ha puesto es lo que se "tiene" que hacer, ni mas ni menos, mas claro ni el agua No le busquemos tres pies al gato Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#9
|
||||
|
||||
Cita:
Pero entiendo la inquietud del LAST. Si existiera al igual que FIRST, podría hacerse la consulta así:
sin necesidad de ordenar inversamente, lo cual quizá fuera más adecuado. Como diije, desconozco FB, pero creo haber leído que aún teniendo un índice sobre campo, el order BY DESC no es óptimo a menos que se haga un índice inverso sobre el mismo campo. // Saludos |
#10
|
|||
|
|||
Pues parece que esto es mas complejo de lo que pensé, traté de hacer esto en una consulta en FB y me da error, no se puede usar UNION sobre la misma tabla
Cita:
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#11
|
||||
|
||||
Cita:
Pero ya en serio, se me hacer extraño que no acepte esa unión. Buscando en los foros he visto, por ejemplo, esta pregunta, en la que se hace un union a la misma tabla y la queja no parece ir por ahí. // Saludos |
#12
|
|||
|
|||
El problema que se te presenta egostar es que no puedes utilizar la clausula order by en uniones, el order lo puedes colocar al final de la union para indicar el orden del resultado final.
Lo mejor es utilizar un procedimiento almacenado, si alguien encuentra una forma mejor por favor nos dice. Miremos el ejemplo:
Supongamos por ejemplo que queremos saber la primera y la ultima factura entre dos fechas, este procedimiento lo puede hacer:
El if (id_factura is not null) es para evitar que te salgan registros nulos cuando no hay facturas en el ranog de fechas. Ejecuta el procedimiento con estos casos, correlos uno por uno
Espero que les sea de utilidad.
__________________
Luis Fernando Buelvas T. |
#13
|
|||
|
|||
Ok, viendo todo lo anterior en definitava solamente se resuelve mediante un procedimiento almacenado, gracias a todos por ayudarme
|
#14
|
||||
|
||||
Gracias Luis Fernando, ya se me ha aclarado que el problema está en el order by y de hecho, ya sabiendo eso, veo que es cosa del sql estandard que no permite eso en una unión.
Nuevamente, gracias. // Saludos |
#15
|
|||
|
|||
Encantado de poderles servir.
__________________
Luis Fernando Buelvas T. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
obtener el primer registro de una consulta + el ultimo de otra | Gaim2205 | SQL | 9 | 16-06-2008 23:31:20 |
Seleccionar ultimo item de un listbox | gallipi | OOP | 5 | 28-11-2007 00:29:38 |
Seleccionar el ultimo registro de un campo | juangabriel1786 | MySQL | 2 | 25-08-2007 04:35:32 |
Primer Registro | alcides | Varios | 5 | 04-05-2005 17:34:37 |
Ultimo registro | ander | Firebird e Interbase | 3 | 18-03-2004 14:52:02 |
|