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-08-2008
mike_1979 mike_1979 is offline
Miembro
 
Registrado: jul 2008
Posts: 17
Poder: 0
mike_1979 Va por buen camino
Encontrar primer registro que cumpla condición

Hola a todos, espero que se encuentren bien, yo estoy un poco enfermo pero bue... vamos al tema q me ocupa: necesito realizar una consulta que me devuelva el primer registro que cumpla la condición, por ejemplo el primer cliente cuyo saldo sea mayor que 150. Estuve trabajando con otro sistema de base de datos que tiene las instrucciones:
Código:
 FIND FIRST TABLA1 WHERE ....
 
 FIND LAST TABLA1 WHERE....
Quiero saber si con SQL hay instrucciones similares que devuelvan un solo resultado. Desde ya les agradezco mucho si pueden ayudarme.
Responder Con Cita
  #2  
Antiguo 27-08-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me parece que se puede hacer una sentencia que cumpla con el primer requisito (que el saldo sea mayor que 150) y poner un order by para que cumpla con el siguiente requisito que seria o bien la antigüedad por fecha u otro.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 27-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola mike_1979,
Para ayudarte deberíamos conocer con que motor de base de datos estás trabajando. No todos los motores tienen la misma sintaxis, muy a pesar de haber un estandar.

En el caso de Interbase/Firebird para obtener los x primeros registros se emplea FIRST:

Código SQL [-]
select FIRST 1 tus_campos
from tu_tabla
where la_condicion

En el caso de SQL Server es TOP:

Código SQL [-]
select TOP 1 tus_campos
from tu_tabla
where la_condicion

Desconozco en otros motores. Si nos indicaras tal vez podríamos ayudarte.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 27-08-2008
mike_1979 mike_1979 is offline
Miembro
 
Registrado: jul 2008
Posts: 17
Poder: 0
mike_1979 Va por buen camino
Hola Caral, gracias por responder, con una consulta así tambien podria devolverme mas de un registro, yo necesito indicarle que me devuelva sólo uno y nada mas q uno
Responder Con Cita
  #5  
Antiguo 27-08-2008
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, no te sirve utilizar First o Top. ¿Que base de datos estas utilizando?

Código SQL [-]
 Select First 1 campo1, campo2 from tabla where salario>150

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 27-08-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Perdona amigo me equivoco o esta sentencia lo que te devuelve es un solo registro, no necesariamente el primero?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 27-08-2008
mike_1979 mike_1979 is offline
Miembro
 
Registrado: jul 2008
Posts: 17
Poder: 0
mike_1979 Va por buen camino
Hola Caro, estoy utilizando SQL Server, lo que puse de find first es a modo de muestra esas sentecias las tiene Progress y son muy utiles, ahora pruebo con las que me pones acá y te aviso, muchas gracias
Responder Con Cita
  #8  
Antiguo 27-08-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

¿Y que motor de base de datos usas? Por que como bien dices, dependiendo de este te podríamos decir que condición usar...

Ahora, también podrías probar usando la función Min de SQL:

Código SQL [-]
select Min(Saldo) from Tabla where Saldo > 150

Esto te debería devolver lo que buscas:


Saludos...
Responder Con Cita
  #9  
Antiguo 27-08-2008
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 de nuevo, entonces tienes que hacerlo con Top, ademas si quieres el salario minimo debes hacer un order by por salario.

Código SQL [-]
 Select top 1 * from tabla where salario>150 order by salario

O utilizar lo que te indica mayanes con Min.

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
  #10  
Antiguo 27-08-2008
mike_1979 mike_1979 is offline
Miembro
 
Registrado: jul 2008
Posts: 17
Poder: 0
mike_1979 Va por buen camino
muchisimas gracias Maeyanes, era justo lo que necesitaba. saludos.
Responder Con Cita
  #11  
Antiguo 27-08-2008
mike_1979 mike_1979 is offline
Miembro
 
Registrado: jul 2008
Posts: 17
Poder: 0
mike_1979 Va por buen camino
Gracias a vos tambien Caro. Saludos
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
sumatoria de una tabla mientras se cumpla una condicion douglas Conexión con bases de datos 28 29-10-2007 22:40:57
Salir del for select cuando se cumpla una condición Ivanzinho Firebird e Interbase 8 30-11-2005 21:47:48
Error al encontrar registro. alfredosg19 Conexión con bases de datos 1 04-07-2005 17:25:59
Encontrar un registro determinado. alfredosg19 Conexión con bases de datos 3 20-06-2005 21:09:49
Primer Registro alcides Varios 5 04-05-2005 17:34:37


La franja horaria es GMT +2. Ahora son las 08:26:54.


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