Ver Mensaje Individual
  #3  
Antiguo 30-07-2013
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola,

Asumiendo cosas como por ejemplo que el campo fichadas.fecha corresponda a un campo Date o TimeStamp y sea la fecha de la fichada y que de igual manera clientes.ingreso sea un campo de fecha

Para seleccionar las fichadas antes de la fecha de ingreso puede servirte algo como:
Código SQL [-]
SELECT * FROM fichadas a
INNER JOIN clientes b ON a.id_cliente = b.id
WHERE a.fecha < b.ingreso

Ahora, apoyando a casimiro, debes explicar mejor tu problema para que se te pueda responder de manera correcta porque aunque la sentencia de DELETE puede ser algo como esto,

ATENCION!!! WARNING!!! OJO PELAO!!!
Esta es sentencia podría borrarte mucho mas de lo que esperas porque podría hasta borrar una fichada de un id_cliente que tenga 2 registros con uno despues de la fecha de ingreso y el otro no.

Código SQL [-]
DELETE FROM fichadas
WHERE id_cliente =
  (SELECT a.id_cliente FROM fichadas a
     INNER JOIN clientes b ON a.id_cliente = b.id
     WHERE a.fecha < b.ingreso);

Si por alguna razón no tienes bien definidas las llaves de fichadas y con una sola sentencia no puedas obtener el resultado que esperas, te recomendaría hacer un SP que se encargue de esa tarea y hacer todas las validaciones necesarias allí dentro. Si a la final no puedes con el sp pues hacerlo desde delphi.

PS: Debí modificar el mensaje porque no me había dado cuenta que la consulta era en el foro de Interbase/Firebird
__________________
Buena caza y buen remar... http://mivaler.blogspot.com

Última edición por movorack fecha: 30-07-2013 a las 21:55:09.
Responder Con Cita