¿Cómo usar tres tablas para sacar un campo en fox?

Hola, verán mi pregunta es fácil para ustedes los foxeros. Consiste en que tengo tres tablas plazas, empleados y detalle_planillas y deseo agregar en el detalle_planillas el cargo del empleado. Pero en la tabla empleado solo esta el id_plaza, es decir que tengo que hacer una comparación entre estas 3 tablas para después hacer un replace.
He intentado varias formas como esta, pero no me inserta nada en la tabla detalle_planilla. No se que estaré haciendo mal.
REPLACE Cargo WITH plazas.descripcion_plaza for plazas.id_plaza = empleados.id_plaza
Espero de su pronta ayuda, para saber que estoy haciendo mal!
1

1 Respuesta

30.000 pts. programacion en visual fox 9
Enviame la estrcutira de las tres tablas, de antemano te digo que para que las tres tablas puedas relacionarlas, deben de tener un campo en común, la tabla plazas, empleados y detalle_planillas deben de tener el campo en común id del empleado, solo así podrás reemplazarla ejemplo:
select plazas
locate for id="0001"
vcampo=alltrim(cargo)
select detalle_planillas
locate for id="0001"
replace cargo with vcampo
Eso es todo enla forma más arcaica, por que si las relacionamos a través de estos campo no necesitamso hacer todo esto, solo pasarnos a la tabla indicada y hacer el replace.
Suerte
Pues ese es mi problema. Ya que en la estructutura de las llaves es así:
Plazas.Id_plaza =>       Empleados
                                     Id_empleado
                                      Id_plaza
                                                            => Detalle_planillas
                                                                  id_empleado.
Es decir que las tres no tiene relación, ¿pero estaba pensando en algo así como hacer un select y meter toda la info de la tabla plazas en un cursos y después compara y hacer un replace que opinas?... Pero la verdad no domino muy bien esto de los cursores.
Espero me puedas ayudar!
Tienes tres tablas plazas, empleados y detalle_planillas, la estructuras de estas tablas es la siguiente:
Plazas:
Id plazas
Empleados:
id_empleado ,id_plazas
detalle_planillas:
Id_empledo ; y en esta tabla quieres agregar el cargo del empleado, debo de suponer que en la tabla empleados ya tienes ingresada la información de la plaza del empleado y esta plaza la quieres agregar en la tabla detalle_planillas, si haces eso estarías duplicando la información, solo relacionalas a través de los campos id_empleados y listo.
Eso es lo que te entiendo hasta la fecha
De lo contrario, seria mejor que me envíes tu formulario con las tablas indicadas y lo que deseas obtener, para hacértelo el código.
Pues la verdad con el código, no puedo enviártelo por políticas de seguridad de la empresa adonde estoy laborando.
Ahora con respecto a relacionar los campos con el id_empleado, lo podría hacer perfectamente pero el problema que tengo es que en la tabla Empleados solamente tengo el "id_plaza", no el campo "nombre_plaza". Y en la tabla Descuentos_planilla no necesito agregar el id, sino el nombre completo; por que esta tabla la paso después a excel y es la planilla a imprimir.
Y este diseño de base de datos, no lo hice yo, pero lo puedo alterar si fuera necesario en este caso.
También otra cosa, que estaba pensando es usar un "set relation " para unir estas tres tablas, pero no son muy foxero, estoy aprendiendo todavía, y no se que otras opciones existan.
Espero me entiendas y me puedas ayudar.
Desde ya gracias!
Enviame la estructura complet de las tres tablas y la información que almacena en cada campo, para según eso determinar lo que se podría hacer.
Pues me parece bien, ¿pero cómo hago para pasártelo me das tu correo o por que medio gustas que te lo pase?
Mi correo es [email protected]
Ok, ya te lo envíe!
Desde ya muchas gracias!
Ok. Reviso tus tablas y te envío la posible solución

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas