SQL - problema con consulta

 
Vista:

problema con consulta

Publicado por Leonardo (2 intervenciones) el 18/08/2007 17:01:33
Buenas, quiero hacerles la siguiente consulta ya que no se mucho de sql y no logro solucionar el problema, el tema es el siguiente:

Tengo una tabla proyectos con los siguientes campos (entre otros), id, nombreProyecto, cliente y lider.

y otra tabla usuarios con los principales campos id, nombre y rol. Donde id es un autoincremento, nombre no hace falta aclarar que es y rol es Lider o Cliente (aun que los datos Lider y Cliente estan a su vez en otra tabla llamada rol y de ahi obtengo esos datos, pero ahora eso no importa).

Ahora bien, si yo ago esta consulta:

SELECT proyectos.id, nombreProyecto AS "Nombre de Proyecto", Cliente, Nombre AS "Lider" FROM proyectos, usuarios WHERE Lider = usuarios.id ORDER BY NombreProyecto

me devuelve por ejemplo:

id Nombre de Proyecto Cliente Lider

1 Proyecto1 1 pepe
2 Proyecto2 3 juan

y ahi esta mi problema, necesito que en la columna "Cliente" en vez que me devuelva el id del cliente, me muestre el nombre del Cliente al igual que lo hace con los Lideres.

Espero que alguien me pueda dar una solucion y desde ya les agradesco.

Leonardo
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:problema con consulta

Publicado por Jose Luis (1 intervención) el 20/08/2007 09:46:31
Seguro que tienes alguna tabla donde tengas el codigo de cliente y el nombre de cliente. Llamemos a esta tabla, tablacliente.

Entonces la consulta quedaría:

SELECT proyectos.id, nombreProyecto AS "Nombre de Proyecto", tablacliente.NOMBRECliente, Nombre AS "Lider" FROM proyectos, usuarios, tablacliente WHERE Lider = usuarios.id AND CLIENTE=tablacliente.idcliente ORDER BY NombreProyecto

Espero que te sirva.

Un saludo.
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:problema con consulta

Publicado por Leonardo (2 intervenciones) el 20/08/2007 22:33:43
Hola Jose Luis, gracias por tomarte un tiempito para responderme.

"Seguro que tienes alguna tabla donde tengas el codigo de cliente y el nombre de cliente. Llamemos a esta tabla, tablacliente. "

Justamente ahi esta mi problema, los clientes y lideres estan en la misma tabla (la tabla usuarios) y no puedo hacer algo asi como: usuarios.nombre AS "Cliente" y usuarios.nombre AS "Lider".

Esta es la primera vez que trabajo con distintos tipos de usuarios, al comienzo habia hecho una tabla para cada uno de los tipo de usuarios, pero vi que se me iva a complicar al momento de hacer el login y otras cosas...

Por lo que podria sumar una pregunta mas; en el caso de cuando se necesita trabajar con varios tipos de usuarios, conviene usar una tabla para cada uno?

Espero que exista alguna solucion a este problema y no tener que separar los usuarios en tablas diferentes. :S

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:problema con consulta

Publicado por Jose Luis (4 intervenciones) el 21/08/2007 09:35:35
No se si he cogido la idea.

¿Porque no puedes hacer algo como usuarios.nombre AS "Cliente" y usuarios.nombre AS "Lider"?

"Creo" que esto te tendria que funcionar a la perfección

SELECT proyectos.id, nombreProyecto AS "Nombre de Proyecto", Usuarios.Nombre as "Cliente", Usuarios.Nombre AS "Lider"
FROM proyectos, usuarios
WHERE proyectos.Lider = usuarios.id
and proyectos.Cliente= usuarios.id
ORDER BY NombreProyecto

No entiendo porque no te funciona...
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