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.
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


0