Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   consultas entre varias tablas (https://www.clubdelphi.com/foros/showthread.php?t=867)

Irina 27-05-2003 19:07:05

consultas entre varias tablas
 
Buenas, mi duda es la siguiente:

Tengo 3 tablas, Facturas(primary key N_fac), Presupuestos(pk n_pre, foreign key factura) y Detalles(pk n_pre, fk n_pre)

Quiero que al seleccionar una factura, se seleccionen todos los campos de presupuestos cuya fk sea igual a la factura elegida y a su vez me seleccione todos los campos de detalles cuyas claves coincidan con las claves selecionadas en presupuestos.

Espero haberme explicado bien, y que alguien me entienda.

Gracias por ayudarme.

Irina.

andres1569 27-05-2003 19:25:10

Hola:

Irina escribió:
Cita:

Quiero que al seleccionar una factura, se seleccionen todos los campos de presupuestos cuya fk sea igual a la factura elegida ...
Tal como lo planteas aquí no parece que se trate de hacer una consulta que enlace esas tablas sino de crear una relación Maestro-Detalle (por campos querrás decir registros, supongo). Basta con que asignes las propiedades MasterSource de la tabla de Presupuestos al Datasource de Facturas y a la propiedad MasterFields le asignes el índice foráneo a facturas. Con la tabla de detalles haces igual, enlazas el MasterSource al DataSource de presupuestos, y fijas el índice correspondiente, n_pre. Con esto, al navegar por facturas te filtrará los presupuestos relacionados (algo raro me parece), y al navegar por presupuestos te mostrará los detalles correspondientes.

También puedes enlazar consultas por el mismo sistema de Maestro-Detalle. La consulta de presupuestos sería:

SELECT * FROM presupuestos WHERE n_fac = :n1

y los detalles de presupuestos sería:

SELECT * FROM datallespre WHERE n_pre = :n1

Esto hace que la relación maestro-detalle ejecute cada vez la consulta correspondiente y el parámetro :n1 toma cada vez el valor del Dataset maestro.

No sé si es a esto último a lo que te referías.

Un saludo

Irina 27-05-2003 19:32:23

Gracis por tu ayuda, pero ya he encontrado una solucion mas sencilla

Pero de todas formas gracias por tu interes
Irina.

marcoszorrilla 27-05-2003 19:58:32

Hola Irina:

Dices que has encontrado una solución más sencilla, no estaría demás que nos dijeras cual es, para saber como lo has resuelto finalmente.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 16:28:26.

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