ITIG
Publicado por Sergio (2 intervenciones) el 08/05/2008 08:26:49
Hola tengo las siguiente tabla:
emp(cod,nombre,oficina,cargo,comision,ctacorriente,mgr)
es una tabla que guarda los empleados de un a empresa, el campo mgr, corresponde al numero del empelado que es jefe. es decir que es una relacion reflexiva (los jefes de todos los empleados son otros empleados que estan en la misma tabla)
Quiero hacer una consulta que me saque por pantalla:
el codigo, nombre del empleado y nombre del Jefe de dicho empleado.
Que me saque tambien a los empleados que no tienen jefe (por eso he puesto un outer join)
SELECT a.cod AS codigo, a.nombre, a.mgr AS su_Jefe
FROM emp a LEFT OUTER JOIN emp b ON(a.cod!=b.cod)
GROUP BY a.cod,a.nombre,a.mgr;
Si que consigo sacar toda la informacion bien con esta consulta, el problema que tengo es que saco el nº del jefe de cada empleado y en vez del numero lo que quiero sacar es el nombre directamente, alguien sabe como puedo hacerlo?
(debe ser una pequeña modificacion de esa consulta pero que ahora mismo no caigo)
Gracias a todos por adelantado.
emp(cod,nombre,oficina,cargo,comision,ctacorriente,mgr)
es una tabla que guarda los empleados de un a empresa, el campo mgr, corresponde al numero del empelado que es jefe. es decir que es una relacion reflexiva (los jefes de todos los empleados son otros empleados que estan en la misma tabla)
Quiero hacer una consulta que me saque por pantalla:
el codigo, nombre del empleado y nombre del Jefe de dicho empleado.
Que me saque tambien a los empleados que no tienen jefe (por eso he puesto un outer join)
SELECT a.cod AS codigo, a.nombre, a.mgr AS su_Jefe
FROM emp a LEFT OUTER JOIN emp b ON(a.cod!=b.cod)
GROUP BY a.cod,a.nombre,a.mgr;
Si que consigo sacar toda la informacion bien con esta consulta, el problema que tengo es que saco el nº del jefe de cada empleado y en vez del numero lo que quiero sacar es el nombre directamente, alguien sabe como puedo hacerlo?
(debe ser una pequeña modificacion de esa consulta pero que ahora mismo no caigo)
Gracias a todos por adelantado.
Valora esta pregunta


0