SQL - ¿Consulta posible o imposible?

   
Vista:

¿Consulta posible o imposible?

Publicado por Ariadna23 (3 intervenciones) el 01/02/2008 14:11:37
¡Holas gente!
Necesito ayuda antes de que los del psiquiátrico me busquen una habitación...
Os cuento mi caso, que me estoy volviendo loca y quizá es que no sea posible hacer lo que necesito:

Tengo 2 tablas en Access, T1 y T2, con los siguientes campos:

En T1: cif, nombre, ciudad
En T2: cif, nombre, email

EN T1
11111111Y - Pepe - París
22222222A - Juan - Berlín
33333333X - Carlos - Londres

EN T2
44444444S - Ana - ana@dominio.es
11111111Y - Pepe - pepe@algo.com
55555555R - Lola - lola@lalala.es

Lo que yo quiero es que me saque toooodos los registros de la T1 con sus campos, y todos los registros de la tabla T2 con los suyos pero sin repetir el campo cif, es decir, debería resultar algo así (Pepe solo una vez):

11111111Y - Pepe - París - pepe@algo.com
22222222A - Juan - Berlín - Null
33333333X - Carlos - Londres - Null
44444444S - Ana - Null - ana@dominio.es
55555555R - Lola - Null - lola@lalala.es

¿Se puede o estoy flipando?

Gracias por vuestras respuestas :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Consulta posible o imposible?

Publicado por Ariadna23 (3 intervenciones) el 01/02/2008 14:15:09
Dos cosillas que se me olvidaron:

El tema es una tabla con la suma de los campos y de los registros, pero agrupado por el cif.

El orden no importa, y clave primaria no hay (aunque en teoría sería el cif).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Consulta posible o imposible?

Publicado por amv (14 intervenciones) el 01/02/2008 15:19:42
Prueba esto:

select s1.cif, s1.nombre, s2.ciudad, s3.email
from
(
select cif, nombre from t1
union
select cif, nombre from t2
) as s1

left outer join
(select cif, ciudad from t1) as s2 on s1.cif = s2.cif

left outer join
(select cif, email from t2) as s3 on s1.cif = s3.cif

Espero que te funcione...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Consulta posible o imposible?

Publicado por Ariadna23 (3 intervenciones) el 01/02/2008 17:13:12
Uys, casi, pero ya empieza a tirar...
Muchas gracias amv!!

Creo que falta algo entre los dos left outer join.
Si quito el último si funciona, aunque no me enseña los emails (access me transforma la sintaxis, pero es tu código).

SELECT s1.cif, s1.nombre, s2.ciudad
FROM
[select t1.cif, t1.nombre from t1
union
select t2.cif, t2.nombre from t2
]. AS s1
LEFT JOIN [select t1.cif, t1.ciudad from t1]. AS s2 ON s1.cif = s2.cif;

Si no lo quito, me dice...

Error de sintaxis (falta operador) en la expresión de consulta 's1.cif = s2.cif
left outer join
(select cif, email from t2) as s3 on s1.cif = s3.cif '

Parece que está cerca, le daré alguna vuelta más.
Y si a alguien se le ocurre lo que puede estar pasando...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Consulta posible o imposible?

Publicado por amv (14 intervenciones) el 01/02/2008 20:24:30
No sé en access, en SQL Server sí funciona correctamente... así que debe ser alguna restricción del access. Si descubro algo nuevo te cuento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar