SQL - Consulta entre tablas relacionadas

 
Vista:

Consulta entre tablas relacionadas

Publicado por Leandro (3 intervenciones) el 12/06/2008 21:19:23
Escenario:

TABLA 1 : Clientes

NOMBRE COLUMNA TIPO OTRAS
IdCliente int Clave principal + No nulo + Esp. de Identidad
Nombre nchar(20) No nulo
Apellido nchar(30) No nulo
IdVendedor int Admite nulo

TABLA 2 : Vendedores

NOMBRE COLUMNA TIPO OTRAS
IdVendedor int Clave principal + No nulo + Esp. de Identidad
Nombre nchar(20) No nulo
Apellido nchar(30) No nulo

RELACIÓN: exite una relación entre Clientes y Vendedores (Clientes.IdVendedor --> Vendedores.IdVendedor)

EL PROBLEMA:
Ahora si, después de la "introducción", les cuento cual es problema que no logro solucionar.
Ingrese 3 Vendedores al Sistema y la tabla me quedó:

-- SELECT * FROM Vendedores --

IdVendedor Nombre Apellido
1 VNombre1 VApellido1
2 VNombre2 VApellido2
3 VNombre3 VApellido3

Después ingresé 4 Clientes:

-- SELECT* FROM Clientes --

IdCliente Nombre Apellido IdVendedor
1 CNombre1 CApellido1 1
2 CNombre2 CApellido2 2
3 CNombre3 CApellido3 NULL
4 CNombre4 CApellido4 NULL

Mi problema es que necesito mostrar, en una grilla, los datos de los clientes. Ej.:

Nombre Apellido Vendedor
CNombre1 CApellido1 VNombre 1 VApellido 1
CNombre2 CApellido2 VNombre 2 VApellido 2
CNombre3 CApellido3
CNombre4 CApellido4

Para obtener esta tabla traté utilizando la sentencia:

-- select Clientes.Nombre,Clientes.Apellido,(Vendedores.Nombre + Vendedores.Apellido) As Vendedor from Clientes INNER JOIN Vendedores ON Clientes.IdVendedor = Vendedores.IdVendedor --

Pero solo me devuelve:

Nombre Apellido Vendedor
CNombre1 CApellido1 VNombre 1 VApellido 1
CNombre2 CApellido2 VNombre 2 VApellido 2

¿Como puedo obtener una respuesta como la que necesito? No logro que me liste los clientes que no tiene un vendedor asociado. Estoy utilizando SQL Server 2005.

Muchas gracias.

Leandro.
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 entre tablas relacionadas

Publicado por pacopaz (143 intervenciones) el 12/06/2008 21:29:23
Deberás cambiar INNER por LEFT [OUTER] de esta forma:

select
Clientes.Nombre,
Clientes.Apellido,
(Vendedores.Nombre + Vendedores.Apellido) As Vendedor
from Clientes LEFT JOIN Vendedores
ON Clientes.IdVendedor = Vendedores.IdVendedor

Saludos.
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 entre tablas relacionadas

Publicado por pacopaz (143 intervenciones) el 12/06/2008 21:32:06
PD. Uno de verdad agradece cuando el nivel de detalle para describir un problema es tan profundo.
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

SOLUCIONADO

Publicado por Leandro (3 intervenciones) el 12/06/2008 21:32:28
Muchísimas gracias.
Ya habia gastado mucho tiempo buscando una solución.
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