Principales respuestas
Unión de 3 tablas

Pregunta
-
Buen día comunidad
Quisiera saber como puedo resolver este problema. Tengo 3 tablas:
Clientes
id
nombre
Apuntados01
idcliente
Apuntados02
idcliente
Los idcliente son FK de id Clientes, lo que necesito es mostrar en una tabla vista el nombre y el id del cliente, sin que se repitan los ids, ya que en las tablas Apuntados pueden existir coincidencias de ids.
Intenté con esto
SELECT APuntados01.idcliente
FROM Apuntados01
UNION
SELECT Apuntados02.idcliente
FROM Apuntados02Me muestra los ids sin repetir pero no el nombre.
¿Cómo puedo lograr lo que busco?, ¿Que muestre el nombre y los ids de las tablas apuntados sin que se repitan?
De antemano muchísimas gracias.
- Editado Renato Soza domingo, 19 de enero de 2014 4:39 Olvido
Respuestas
-
Me da error, dice que es inválida la columna 'id' la columna 'id' existe en la tabla Clientes.
SELECT C.id, C.nombre
FROM dbo.Clientes AS C
INNER JOIN
(SELECT dbo.Apuntados01.idcliente
FROM dbo.Apuntados01
UNION
SELECT dbo.Apuntados02.idcliente
FROM dbo.Apuntados02)
AS A ON C.id = A.idError Execution Error
Executed SQL statement SELECT C.id, C.nombre FROM dbo.Clientes AS C INNER JOIN (SELECT idcliente FROM dbo.Apuntados01 UNION SELECT idcliente FROM dbo.Apuntados02) AS A ON C.id = A.id.
Error Source: .Net SqlClient Data Provider
Error Message: Invalid column name 'id'
Parece que es la sintáxis.
Gracias por ayudar y por tu tiempo!!!
- Marcado como respuesta Renato Soza lunes, 20 de enero de 2014 1:03
- Editado Renato Soza lunes, 20 de enero de 2014 1:04
Todas las respuestas
-
Hola.
Sólo te falta cruzar con la tabla de clientes para obtener los nombres:
Select C.idcliente, C.Nombre, from Clientes C inner join ( SELECT APuntados01.idcliente FROM Apuntados01 UNION SELECT Apuntados02.idcliente FROM Apuntados02 ) A on C.idcliente = A.idcliente
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.com
Sígueme en twitter en http://twitter.com/qwalgrande -
Alberto buen día, gracias por responder.
Al ejecutar el comando en SQL 2012 me aparece el siguiente error
Missing or incomplete SELECT clause.
Unable to parse query text.Error Message: Incorrect syntax near the keyword 'FROM'. Incorrect syntax near 'A'
-
Hola.
Me dejé una coma de más en la sentencia que puse. Prueba así:
Select C.idcliente, C.Nombre from Clientes C inner join ( SELECT APuntados01.idcliente FROM Apuntados01 UNION SELECT Apuntados02.idcliente FROM Apuntados02 ) A on C.idcliente = A.idcliente
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.com
Sígueme en twitter en http://twitter.com/qwalgrande -
Me da error, dice que es inválida la columna 'id' la columna 'id' existe en la tabla Clientes.
SELECT C.id, C.nombre
FROM dbo.Clientes AS C
INNER JOIN
(SELECT dbo.Apuntados01.idcliente
FROM dbo.Apuntados01
UNION
SELECT dbo.Apuntados02.idcliente
FROM dbo.Apuntados02)
AS A ON C.id = A.idError Execution Error
Executed SQL statement SELECT C.id, C.nombre FROM dbo.Clientes AS C INNER JOIN (SELECT idcliente FROM dbo.Apuntados01 UNION SELECT idcliente FROM dbo.Apuntados02) AS A ON C.id = A.id.
Error Source: .Net SqlClient Data Provider
Error Message: Invalid column name 'id'
Parece que es la sintáxis.
Gracias por ayudar y por tu tiempo!!!
- Marcado como respuesta Renato Soza lunes, 20 de enero de 2014 1:03
- Editado Renato Soza lunes, 20 de enero de 2014 1:04
-