Un JOIN aparentemente sencillo
Publicado por jevi19 (2 intervenciones) el 03/02/2004 11:08:33
Hola a todos. Mi problema es el siguiente: tengo 3 tablas (Genericos, Internos y Externos) relacionadas x el campo "Codigo" y q se guardan datos de documentación. En la tabla "Genericos" guardo todos los datos genericos de cualquier documento (Título, tema de q trata, fecha de emisión, etc, etc.. ); y luego, en la tabla "Internos" guardo los datos concretos de documentos internos, y en la tabla de "Externos" (obviamente) los datos concretos q se refieren a documentos externos. En resumen, todos los documentos tendrán una entrada en la tabla "Genericos" y luego, a su vez, de cada una de esas entradas de "Genericos" q se corresponda con un documento interno tendrá una entrada en la tabla "Internos" y lo mismo para los externos. Un mismo documento solo puede ser o interno o externo (no puede ser los 2 al mismo tiempo ni puede no tener una entrada en una de esas 2 tablas)
Ahora, lo q quiero es sacar un listado detallado de todos los documentos q tengo, y si son externos mostrar su información de la tabla "externos" y si son internos mostrar su información de la tabla "internos", y hago los siguiente:
SELECT * FROM (Genericos INNER JOIN Internos ON Genericos.codigo = Internos.codigo) INNER JOIN Externos ON externos.codigo <> Internos.codigo
Esto no funciona. He probado tb sacar un listado de los codigos de la tabla "Internos" para hacer la comparación con un NOT IN y tampoco ha funcionado. Tb he probado ponerlo como
"[...]INNER JOIN Externos ON Externos.codigo NOT IN (SELECT codigo FROM Internos)"
y tampoco. Lo más q he conseguido ha sido q me devuelva una tabla vacia, cnd no se me colgaba la aplicación.
X si sirve d alguna ayuda, es una base de datos access atacada con VBA (cutre, cutr
Ahora, lo q quiero es sacar un listado detallado de todos los documentos q tengo, y si son externos mostrar su información de la tabla "externos" y si son internos mostrar su información de la tabla "internos", y hago los siguiente:
SELECT * FROM (Genericos INNER JOIN Internos ON Genericos.codigo = Internos.codigo) INNER JOIN Externos ON externos.codigo <> Internos.codigo
Esto no funciona. He probado tb sacar un listado de los codigos de la tabla "Internos" para hacer la comparación con un NOT IN y tampoco ha funcionado. Tb he probado ponerlo como
"[...]INNER JOIN Externos ON Externos.codigo NOT IN (SELECT codigo FROM Internos)"
y tampoco. Lo más q he conseguido ha sido q me devuelva una tabla vacia, cnd no se me colgaba la aplicación.
X si sirve d alguna ayuda, es una base de datos access atacada con VBA (cutre, cutr
Valora esta pregunta


0