Como crear informe que tome datos de dos tablas mysql

924 views
Skip to first unread message

ELX

unread,
Oct 21, 2011, 6:10:45 PM10/21/11
to Mundo Visual FoxPro
Buenas tardes,

Yo tengo una aplicacion que se conecta a una base de datos mysql y
requiero realizar un informe en donde me relacione datos de dos
tablas.

Tengo la conexion creada que genera un handle y luego en el init del
informe coloco:

sqlM = "SELECT * FROM tabla1 WHERE tipo=1"
SQLEXEC(handle,sqlM,"curTemp")

Ahora bien, en el informe, luego de dar una primera vista previa tengo
disponible todos los campos en el cursor "curTemp" y puedo generar el
informe perfectamente, pero..., necesito cruzar dos tablas sea por
inner join u otra manera y no lo he logrado, realmente lo desconozco.

en la tabla 1 hay un campo que se llama codigod y en la tabla 2 hay
uno igual codigod pero contiene la descripcion de codigod, que
necesito colocar en el informe, es decir, el informe sería algo asi:

tabla1.codigo1 tabla2.descripcion ...

si utilizo inner join en la consulta no funciona (no se por que?)

he creado 2 cursores diferentes, figuran en el diseñador de informes,
pero no encuentro como relacionar que en una linea por ejemplo:
tabla1 tabla2
codigod codigod descripcion
1 1 perro
2 2 caiman

es decir, si en el informe el campo codigod es igual a x utililice la
descripcion de la tabla 2 correspondiente

Espero haberme explicado,

Gracias por adelantado


Intel Man

unread,
Oct 21, 2011, 6:38:06 PM10/21/11
to mundovis...@googlegroups.com
select tabla1.codigod, tabla2.codigo;
          from tabla1, tabla2;
          where tabla1.codigod=tabla2.codigo2;
          into cursor curtemp

> Date: Fri, 21 Oct 2011 15:10:45 -0700
> Subject: [Mundo Visual FoxPro] Como crear informe que tome datos de dos tablas mysql
> From: jair...@gmail.com
> To: mundovis...@googlegroups.com
> --
> _______________________________________________________________
> Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
> FoxPro" de Grupos de Google.
>
> Para anular la suscripción a este grupo, envía un mensaje a:
> mundovisualfox...@googlegroups.com

ELX

unread,
Oct 23, 2011, 11:53:45 PM10/23/11
to Mundo Visual FoxPro
Gracias por tu respuesta,

Hice unos cambios y lo solucione de esta manera, no se si es la mas
correcta.

Para poder hacer un select hay que tener una tabla disponible y aunque
exista la conexion con el odbc de mysql no hay ninguna tabla abierta,
entonces por medio de sqlexec monte un cursor de las tablas:

sqlM = "SELECT * FROM tabla1 WHERE condicion = 1"
SQLEXEC(handle,sqlM,"curMaster")

y a la segunda tabla en cuestion:

sqlM = "SELECT * FROM tabla2 WHERE condicion = 1"
SQLEXEC(handle,sqlM,"curMaster2")

Luego por medio de el select (de tu respuesta) hice la relacion:

select tabla1.* where condicion = x inner join tabla2 ON tabla2.campo1
= tabla2.campo1 into cursor cursorFinal

Alli utilice los datos de cursorFinal para realizar el informe, todo
esto colocado en el init del informe y funciona perfecto.

Saludos
Reply all
Reply to author
Forward
0 new messages