FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayuda con modificacion masiva
Hola, necesito hacer un cambio masivo en una base de datos y no sé crear el SQL para conseguirlo, la estructura de las tablas es esta:
Tabla clientes, campos: ID, NOMBRE, LEGAJO, INGRESO Tabla fichadas, campos: ID_CLIENTE, FECHA, ENTRADA1, SALIDA1 Y lo que necesito es borrar las fichadas que sean anteriores a la fecha de ingreso y modificar las fichadas que entre la entrada y la salida que excedan las 4 horas de diferencia, para que queden de 4 horas. Gracias anticipadas. |
#2
|
||||
|
||||
Hola xeuz, creo que no ha quedado muy clara tu explicación.
Detalla la estructura de las tablas con sus tipos de campos y explica en más profundidad lo que quieres conseguir exactamente. Gracias. Por cierto, como a todos los novatos, se le recomienda leer nuestra guía de estilo
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
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:
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.
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 22:55:09. |
#4
|
|||
|
|||
Muchas gracias Movorack y Casimiro por la rapidísima respuesta a mi escueto post! Estos últimos días estuve lidiando con urgencias todo el tiempo y entre las corridas aveces creo que el resto del mundo puede leer mi cabeza, ERRORRR!
Paso a comentarles un poco más en detalle, soy técnico y brindo soporte a pequeñas y medianas empresas en el rubro informática en gral y además soy programador PHP y mysql (programador de los malos, de los que saben poco, googlean mucho e improvisan otro tanto... ) y en un cliente me pidieron hacer una modificación a una base firebird y supuse que no seria muy distinta la lógica y la sintaxis, pero me encontré con varios inconvenientes y por eso recurrí a uds. Creo que con lo que me pasó Movorack ya me las arreglo para adaptarlo a lo que necesito. Creo que comprendí la logica y sintaxis para este caso en particular. Agradezco enormemente la ayuda por Uds. dada ya que, creo, me resolvió el problema. Lo pruebo y les cuento como me fue. Un abrazo XeuZ |
#5
|
|||
|
|||
Bueno, finalmente acabo de probar el código que me paso Movorack el cual modifique un poco pero me encontré con un problema, el select no devuelve ningún registro! y estoy viendo que los hay. Estoy utilizando IBexpert. El código es:
SELECT a.id FROM fichadas a INNER JOIN clientes b ON a.id_cliente = b.id WHERE A.fecha < B.alta en la parte de mensajes me aparece: Plan PLAN JOIN (A NATURAL, B INDEX (PK_CLIENTES)) Un dato que no había dado y no se si puede que sea eso, el campo a.fecha es del tipo date y b.alta es del tipo timestamp Saludos XeuZ |
#6
|
||||
|
||||
Seria bueno que leyeras un tutorial sobre SQL y luego revisaras la sintaxis especifica de firebase.
__________________
El malabarista. |
#7
|
||||
|
||||
Para una correcta presentación de código fuente, usa los tags, ejemplo:
Gracias Ya te comenté antes que describieras lo mejor posible las tablas y los tipos de campos, recuerda que no somos adivinos
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Modificacion masiva | Spynosa | Firebird e Interbase | 7 | 07-10-2010 07:06:05 |
Actualizacion masiva con trigger | lledesma | SQL | 1 | 23-04-2009 00:24:09 |
insercion masiva | Alfredo | Firebird e Interbase | 3 | 12-11-2008 21:34:46 |
Insercion masiva de una BD a otra BD | oscjae | Firebird e Interbase | 5 | 15-12-2006 21:25:49 |
Inserción masiva en MySQL | Morfo | MySQL | 3 | 09-01-2004 19:05:33 |
|