PDA

Ver la Versión Completa : update a dos tablas relacionadas al mismo tiempo


thelibmx
14-11-2007, 04:05:30
hola amigos esto es un poco complicadillo veran estoy ocupando delphi2006 y mi base de datos es postgre, se que muchos van a salir corriendo despues de haber leido postgre pero olvidense que dije eso ok, el caso es que postgre es muy parecio a mysql, bien, problema es que tengo dos tablas con la siguiente estructura

| __ FECHAS ____| |____ SOLICITUD ___|
| año | | año |
| periodo | | periodo |
|no_serv | | no_serv |
|diasdisponibles | | dias_solicitados |
| fecha inicio |
| fecha fin |




FECHAS
AÑO | PERIODO |NO_SERV| DIAS DISPONIBLES|
2008 1 56 6
2009 2 80 7
2008 1 59 3
2008 2 56 5




SOLICITUD
AÑO | PERIODO |NO_SERV| DIAS SOLICITADOS|FECHA_INICIO|FECHA_FIN
2008 1 56 3 01/02/2008 10/02/2008
2009 3 80 3 01/03/2009 16/02/2009 2008 1 59 6 02/02/2008 07/02/2008


bien lo que yo quiero es que yo tengo un dia en especifico que es 03/02/2008 entonces quiero que me sume un dia al campo de dias solicitados en el cual el dia se encuentre entre fecha inicio y fecha fin y asu ves me sume un dia a la tabla de fechas en el cual periodo,anio, y no_serv son iguales, entonces en este caso seria el primer registro y el tercero de l tabla solicitud y en la de fechas seria el primero y el tercero tambien, alguna ayuda

dec
14-11-2007, 08:58:33
Hola,

Desde cierta versión de MySQL (ya sé que no hablamos de MySQL, pero, bueno) parece que sí que es posible actualizar datos de dos tablas "al mismo tiempo". Eso es lo que puede leerse sobre la sentencia UPDATE en el Curso de MySQL de MySQL.ConClase.net (http://mysql.conclase.net/curso/index.php?sen=UPDATE). No sé si te servirá de algo o qué...

Lepe
14-11-2007, 12:08:28
estoy ocupando delphi2006 y mi base de datos es postgre, se que muchos van a salir corriendo despues de haber leido postgre

Hombre, tanto como salir corriendo.... :D. Siempre queremos dar una solución que se ajuste a la pregunta, si no conocemos postgre, nos abstenemos de contestar, porque no podemos guiarte.

Si dices que es parecido a MySql, bien podrías usar un procedimiento almacenado, allí no tendrás problemas en seleccionar de diferentes tablas, rescatar valores y después actualizar.

Si es viable, podrías crear una vista o hacer un inner join de ambas tablas, algo así:

select f.año, f.periodo, f.no_serv s.dias_solicitados
from fecha f inner join solicitud s on f.año = s.año
where f.periodo = s.periodo and
f.no_serv = s.no_serv and
s.fecha_inicio <= :fecha_especifica and s.fecha_fin >= :fecha_especifica


Saludos