M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-HR

De wikiserver
Dreceres ràpides: navegació, cerca

1) El departamento de recursos humanos necesita una consulta que solicite al usuario el apellido de un empleado. A continuación, la consulta muestra el apellido y la fecha de contratación de cualquier empleado en el mismo departamento del empleado cuyo nombre se proporciona (excepto ese empleado). Por ejemplo, si el usuario introduce Zlotkey , se buscarán todos los empleados que trabajen con Zlotkey (excepto Zlotkey).

Diàleg

  LAST_NAME  HIRE_DATE
  ---------  ---------
1 Russell    01/10/04
2 Partners   05/01/05
3 Errazuriz  10/03/05
4 Cambrault  15/10/07
5 Tucker     30/01/05
...

2) Cree un informe que muestre el número de empleado, apellido y salario de todos los empleados que ganan más del salario medio. Ordene los resultados en orden ascendente de salario.

  EMPLOYEE_ID  LAST_NAME  SALARY
  -----------  ---------  ------
1         203  Mavris	    6500
2         123  Vollman	    6500
3         165  Lee	    6800
4         113  Popp	    6900
5         155  Tuvault	    7000
...

3) Escriba una consulta que muestre el número de empleado y el apellido de todos los empleados que trabajan en un departamento con un empleado cuyo apellido contiene una "u". Guarde la sentencia SQL en un archivo denominado lab_07_03.sql .

Ejecute la consulta.

  EMPLOYEE_ID  LAST_NAME  
  -----------  ---------
1         107  Lorentz
2         106  Pataballa
3         105  Austin
4         104  Ernst
5         103  Hunold
...

4) El departamento de recursos humanos necesita un informe que muestre el apellido, número de departamento e ID de cargo de todos los empleados cuyo ID de ubicación de departamento sea 1700.


  LAST_NAME  DEPARTMENT_ID  JOB_ID
  ---------  -------------  -------
1 King	                90  AD_PRES
2 Kochhar	        90  AD_VP
3 De Haan	        90  AD_VP
4 Greenberg	       100  FI_MGR
5 Faviet	       100  FI_ACCOUNT
...

Modifique la consulta para que se solicite al usuario un ID de ubicación. Guarde estos datos en un archivo denominado lab_07_04.sql .

5) Cree un informe para el departamento de recursos humanos que muestre el apellido y el salario de cada empleado que realice informes para Steven King.

SELECT last_name, salary
FROM employees
WHERE manager_id = (SELECT employee_id
                    FROM employees
                    WHERE first_name='Steven' AND last_name = 'King');

6) Cree un informe para el departamento de recursos humanos que muestre el número de departamento, apellido e ID de cargo de cada empleado del departamento Executive.

SELECT department_id, last_name, job_id
FROM employees
WHERE department_id IN (SELECT department_id
                        FROM departments
                        WHERE department_name = 'Executive');

7) Cree un informe que muestre una lista de todos los empleados cuyo salario sea mayor que el salario de los empleados del departamento 60.

SELECT last_name FROM employees
WHERE salary > ANY (SELECT salary
                    FROM employees
                    WHERE department_id=60);

Si tiene tiempo, realice el siguiente ejercicio:

8) Modifique la consulta del archivo lab_07_03.sql para mostrar el número de empleado, apellido y salario de todos los empleados que ganan más del salario medio y que trabajan en un departamento con cualquier empleado cuyo apellido contiene una "u". Vuelva a guardar lab_07_03.sql como lab_07_08.sql . Ejecute la sentencia en el archivo lab_07_08.sql .

SELECT employee_id, last_name, salary
FROM employees
WHERE department_id IN (SELECT department_id
                        FROM employees
                        WHERE last_name like '%u%')
AND salary > (SELECT AVG(salary)
              FROM employees);