Ejemplos Sem 5
Ejemplos Sem 5
Ejemplos Sem 5
SELECT first_name
FROM employees
WHERE TO_CHAR(hire_date, 'YYYY') = '2001';
/* 20. Mostrar datos de los empleados que han ingresado este a�o */
UPDATE EMPLOYEES
SET SALARY = 8000
WHERE EMPLOYEE_ID = 115 AND SALARY < 6000;
------------------- JOINS
/* 41. Mostrar el nombre del departamento y el n�mero de empleados
en cada uno*/
/* 50. Mostrar los detalles de los puestos ocupados por cualquier empleado
que actualmente tenga m�s de 15000 de salario*/
SELECT JH.*
FROM JOB_HISTORY JH
JOIN EMPLOYEES E ON (JH.EMPLOYEE_ID = E.EMPLOYEE_ID)
WHERE SALARY > 15000;
/* 52. Mostrar nombre de los empleados que ingresaron antes que su manager*/
SELECT E1.FIRST_NAME
FROM EMPLOYEES E1 JOIN EMPLOYEES E2 ON (E1.MANAGER_ID=E2.EMPLOYEE_ID)
WHERE E1.HIRE_DATE < E2.HIRE_DATE;
/* 53. Mostrar nombre, job_title para los puestos que un empleado tuvo
anteriormente y que dur� menos de 6 meses */
SELECT FIRST_NAME, JOB_TITLE
FROM EMPLOYEES E
JOIN JOB_HISTORY JH ON (JH.EMPLOYEE_ID = E.EMPLOYEE_ID)
JOIN JOBS J ON( JH.JOB_ID = J.JOB_ID)
WHERE MONTHS_BETWEEN(END_DATE,START_DATE) < 6 ;
SELECT TO_CHAR(HIRE_DATE,'MON-YY')
FROM EMPLOYEES
JOIN DEPARTMENTS USING (DEPARTMENT_ID)
JOIN LOCATIONS USING (LOCATION_ID)
WHERE CITY = 'Seattle'
GROUP BY TO_CHAR(HIRE_DATE,'MON-YY')
HAVING COUNT(*) > 5;
-------- SUBQUERIES
SELECT *
FROM DEPARTMENTS
WHERE DEPARTMENT_ID IN
(SELECT DEPARTMENT_ID FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING MAX(SALARY)>10000);
SELECT *
FROM JOBS
WHERE JOB_ID IN
(SELECT JOB_ID FROM EMPLOYEES WHERE EMPLOYEE_ID IN
(SELECT EMPLOYEE_ID FROM JOB_HISTORY WHERE JOB_ID='IT_PROG'));
SELECT SALARY
FROM EMPLOYEES main
WHERE 2 = (SELECT COUNT( DISTINCT SALARY )
FROM EMPLOYEES
WHERE SALARY > main.SALARY);