Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-HR»

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 56: Línia 56:
 
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.
 
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.
 
<pre>
 
<pre>
SELECT last_name, salary
+
  LAST_NAME  SALARY
FROM employees
+
  ---------  ------
WHERE manager_id = (SELECT employee_id
+
1 Kochhar    17000
                    FROM employees
+
2 De Haan    17000
                    WHERE first_name='Steven' AND last_name = 'King');
+
3 Raphaely    11000
 +
4 Weiss       8000
 +
5 Fripp       8200
 +
...
 
</pre>
 
</pre>
  
 
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.
 
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.
 
<pre>
 
<pre>
SELECT department_id, last_name, job_id
+
  DEPARTMENT_ID  LAST_NAME  JOB_ID
FROM employees
+
  -------------  ---------  -------
WHERE department_id IN (SELECT department_id
+
1            90 King     AD_PRES
                        FROM departments
+
2            90  Kochhar    AD_VP
                        WHERE department_name = 'Executive');
+
3            90 De Haan    AD_VP
 
</pre>
 
</pre>
  
 
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.
 
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.
 
<pre>
 
<pre>
SELECT last_name FROM employees
+
  LAST_NAME 
WHERE salary > ANY (SELECT salary
+
  --------- 
                    FROM employees
+
1 King
                    WHERE department_id=60);
+
2 Kochhar
 +
3 De Haan
 +
4 Russell
 +
5 Partners
 +
...
 
</pre>
 
</pre>
  
Línia 85: Línia 92:
 
sentencia en el archivo lab_07_08.sql .
 
sentencia en el archivo lab_07_08.sql .
 
<pre>
 
<pre>
SELECT employee_id, last_name, salary
+
  EMPLOYEE_ID  LAST_NAME  SALARY
FROM employees
+
  -----------  ---------  ------
WHERE department_id IN (SELECT department_id
+
1        103  Hunold     9000
                        FROM employees
+
2        123  Vollman     6500
                        WHERE last_name like '%u%')
+
3        122  Kaufling     7900
AND salary > (SELECT AVG(salary)
+
4        121  Fripp     8200
              FROM employees);
+
5        120  Weiss     8000
 +
...
 
</pre>
 
</pre>

Revisió del 12:52, 9 des 2017

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.

  LAST_NAME  SALARY
  ---------  ------
1 Kochhar     17000
2 De Haan     17000
3 Raphaely    11000
4 Weiss	       8000
5 Fripp	       8200
...

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.

  DEPARTMENT_ID  LAST_NAME  JOB_ID
  -------------  ---------  -------
1            90	 King	    AD_PRES
2            90  Kochhar    AD_VP
3            90	 De Haan    AD_VP

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.

  LAST_NAME  
  ---------  
1 King
2 Kochhar
3 De Haan
4 Russell
5 Partners
...

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 .

  EMPLOYEE_ID  LAST_NAME  SALARY
  -----------  ---------  ------
1         103  Hunold	    9000
2         123  Vollman	    6500
3         122  Kaufling	    7900
4         121  Fripp	    8200
5         120  Weiss	    8000
...