Está en la página 1de 10

Lista de departamentos y gente que trabaja

Aquí lo que hemos realizado en conjunto con la clase ver es relacionar una tabla y luego
haremos las relaciones de 2 tablas.

SELECT T1.DEPARTMENT_ID, T1.DEPARTMENT_NAME ,T2.DEPARTMENT_ID,


T2.EMPLOYEE_ID, FIRST_NAME
FROM HR.DEPARTMENTS T1, HR.EMPLOYEES T2
WHERE T1.DEPARTMENT_ID = T2.DEPARTMENT_ID
ORDER BY T1.DEPARTMENT_NAME, T2.FIRST_NAME;

Primer cambio

Este es el primer cambio realizado sobre relacionar 2 tablas en una sola tabla, usando clave
primaria y externa (forana), desde la tabla hr.employees junto con manager id. t1 y t2 son
alias que definimos para realizar la relación entre ambas tablas.

SELECT T1.EMPLOYEE_ID, T1.FIRST_NAME ,T2.MANAGER_ID,


T2.EMPLOYEE_ID,T2.FIRST_NAME
FROM HR.EMPLOYEES T1, HR.EMPLOYEES T2
WHERE T1.DEPARTMENT_ID = T2.MANAGER_ID
ORDER BY T1.FIRST_NAME, T2.FIRST_NAME;
segundo cambio
PRIMERA CONSULTA :

SELECT DEPT.DEPTNO,DNAME, EMPNO, ENAME,EMP.DEPTNO


FROM SCOTT.DEPT, SCOTT.EMP
WHERE SCOTT.DEPT.DEPTNO = SCOTT.EMP.DEPTNO
ORDER BY EMP.DEPTNO, EMPNO;
tienen una relacion

Segunda Consulta:

-- id del cap,cap, Llista de traballadors i empleats relacionats con el id del manager.

SELECT T1.EMPNO, T1.ENAME, T1.JOB,T2.EMPNO,T2.ENAME,T2.JOB,T2.MGR


FROM SCOTT.EMP T1, SCOTT.EMP T2
WHERE T1.EMPNO = T2.MGR
ORDER BY T1.EMPNO;
CONSULTA 3:
prueba 1:
SELECT
DEPARTMENTS.DEPARTMENT_NAME,LOCATIONS.CITY,DEPARTMENTS.MANAGER_I
D,
EMPLOYEES.FIRST_NAME,EMPLOYEES.EMPLOYEE_ID
FROM HR.DEPARTMENTS, HR.EMPLOYEES, HR.LOCATIONS
WHERE DEPARTMENTS.MANAGER_ID = EMPLOYEES.EMPLOYEE_ID
ORDER BY DEPARTMENTS.DEPARTMENT_NAME;
resultado final:

-- id del departament, nom del departament, manager id, nombre de los empleados,
-- id del empleat, y ubicacion del departament relacionado con el id.location department y
locations id

- comentario mio: En aquesta consulta, lo que ens va demanar, es que puguesem


ficar 3 taules i relacionar-los amb claus foranes i primàries, se ha seleccionat la taula
departament, la columna department name, junto a la columna del manager_id y
també ficar la ubicació de on se troba aquest departament i ens fixem que con el
where farem l’ igual, lo que vull dir és que mentres l’ id del departament coincidir amb
l’ id de empleats, cuan se ejecuta la consulta,los valores de los dos id relacionados
entre sí nos tiene que mostrar el mismo dato, y en caso que nos coincida no
mostrará un error.
SELECT
DEPARTMENTS.DEPARTMENT_NAME,DEPARTMENTS.MANAGER_ID,DEPARTMENTS.
LOCATION_ID,
EMPLOYEES.FIRST_NAME,EMPLOYEES.EMPLOYEE_ID,
LOCATIONS.STREET_ADDRESS,LOCATIONS.CITY,LOCATIONS.LOCATION_ID
FROM HR.DEPARTMENTS, HR.EMPLOYEES, HR.LOCATIONS
WHERE DEPARTMENTS.MANAGER_ID = EMPLOYEES.EMPLOYEE_ID
AND DEPARTMENTS.LOCATION_ID = LOCATIONS.LOCATION_ID
ORDER BY DEPARTMENTS.DEPARTMENT_NAME;
Consulta 4

Llistat de totes les feines que ha tingut un treballador i en quins departaments ha estat

Lo mio :
- consulta sobre 4 tablas
SELECT JOB_HISTORY.EMPLOYEE_ID AS ID_EMPLEADO, EMPLOYEES.FIRST_NAME
AS NOM_EMPLEAT,JOBS.JOB_ID,
JOB_HISTORY.JOB_ID AS ID_FEINA, JOB_HISTORY.DEPARTMENT_ID AS
ID_DEPARTMENT,DEPARTMENTS.DEPARTMENT_NAME AS NOM_DEPARTAMENT
FROM HR.JOB_HISTORY, HR.DEPARTMENTS,HR.EMPLOYEES,HR.JOBS
WHERE JOB_HISTORY.EMPLOYEE_ID = EMPLOYEES.EMPLOYEE_ID AND
JOB_HISTORY.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID AND
EMPLOYEES.JOB_ID = JOBS.JOB_ID;

CC

--SELECT JOB_HISTORY.EMPLOYEE_ID AS
ID_EMPLEADO,EMPLOYEES.FIRST_NAME AS NOMMBRE_EMPLEADO,JOBS.JOB_ID
AS LLOC_ACTUAL,
-- JOB_HISTORY.JOB_ID AS ANTIGUE_FEINA,JOB_HISTORY.DEPARTMENT_ID AS
ID_DEPARTMENT,DEPARTMENTS.DEPARTMENT_NAME AS NOM_DEPARTAMENT
-- FROM HR.JOB_HISTORY, HR.DEPARTMENTS,HR.EMPLOYEES,HR.JOBS
-- WHERE JOB_HISTORY.EMPLOYEE_ID = EMPLOYEES.EMPLOYEE_ID AND
-- JOB_HISTORY.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID AND
-- EMPLOYEES.JOB_ID = JOBS.JOB_ID;

SELECT EMPLOYEES.EMPLOYEE_ID AS ID_EMPLEAT,EMPLOYEES.FIRST_NAME AS


NOMBRE_EMPLEADO,EMPLOYEES.JOB_ID AS
ANTIGUE_FEINA,EMPLOYEES.DEPARTMENT_ID AS ID_DEPARTAMENTO,
JOB_HISTORY.EMPLOYEE_ID,JOB_HISTORY.JOB_ID,
JOB_HISTORY.DEPARTMENT_ID,
JOBS.JOB_ID,DEPARTMENTS.DEPARTMENT_ID
FROM HR.EMPLOYEES, HR.JOB_HISTORY, HR.JOBS, HR.DEPARTMENTS
WHERE EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID
AND EMPLOYEES.JOB_ID = JOBS.JOB_ID
AND EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID
ORDER BY EMPLOYEES.EMPLOYEE_ID;

También podría gustarte