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

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 64: Línia 64:
 
</pre>
 
</pre>
  
7) El departamento de recursos humanos necesita un informe que muestre el apellido y la fecha de contratación de todos los empleados contratados durante el año 1994.
+
7) El departamento de recursos humanos necesita un informe que muestre el apellido y la fecha de contratación de todos los empleados contratados durante el año 2004.
 
<pre>
 
<pre>
SELECT last_name, hire_date
+
  LAST_NAME  HIRE_DATE
FROM employees
+
  ---------  ---------
WHERE hire_date LIKE '%94';
+
1 Weiss     18/07/04
 +
2 Mallin    14/06/04
 +
3 Russell    01/10/04
 +
4 King     30/01/04
 +
5 Sully     04/03/04
 +
...
 
</pre>
 
</pre>
  
 
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no tienen un supervisor.
 
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no tienen un supervisor.
 
<pre>
 
<pre>
SELECT last_name, job_id
+
  LAST_NAME  JOB_ID   
FROM employees
+
  ---------  -------
WHERE manager_id IS NULL;
+
1 King     AD_PRES
 
</pre>
 
</pre>
  
 
9) Cree un informe para mostrar el apellido, salario y comisión de todos los empleados que perciben comisiones. Ordene los datos en orden descendente de salario y comisiones. Utilice la posición numérica de la columna en la cláusula ORDER BY .
 
9) Cree un informe para mostrar el apellido, salario y comisión de todos los empleados que perciben comisiones. Ordene los datos en orden descendente de salario y comisiones. Utilice la posición numérica de la columna en la cláusula ORDER BY .
 
<pre>
 
<pre>
SELECT last_name, salary, commission_pct
+
  LAST_NAME  SALARY  COMMISSION_PCT
FROM employees
+
  ---------  ------  --------------
WHERE commission_pct IS NOT NULL
+
1 Russell    14000         0,4
ORDER BY 2 DESC, 3 DESC;
+
2 Partners    13500         0,3
 +
3 Errazuriz  12000         0,3
 +
4 Ozer       11500       0,25
 +
5 Cambrault  11000         0,3
 +
...
 
</pre>
 
</pre>
  
 
10) Los miembros del departamento de recursos humanos desean tener más flexibilidad con las consultas que está creando. Les gustaría tener un informe que muestre el apellido y el salario de los empleados que ganen más de una cantidad especificada por el usuario después de una solicitud. (Puede utilizar la consulta creada en el ejercicio práctico 1 y modificarla). Guarde esta consulta en un archivo denominado lab_02_10.sql .
 
10) Los miembros del departamento de recursos humanos desean tener más flexibilidad con las consultas que está creando. Les gustaría tener un informe que muestre el apellido y el salario de los empleados que ganen más de una cantidad especificada por el usuario después de una solicitud. (Puede utilizar la consulta creada en el ejercicio práctico 1 y modificarla). Guarde esta consulta en un archivo denominado lab_02_10.sql .
<pre>
 
SELECT last_name, salary
 
FROM employees
 
WHERE
 
salary > &sal_amt;
 
</pre>
 
  
 
Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic en OK.
 
Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic en OK.
  
 
[[Imatge:m2_T2HR_10.png |300px| Diàleg]]
 
[[Imatge:m2_T2HR_10.png |300px| Diàleg]]
 +
 +
<pre>
 +
  LAST_NAME  SALARY
 +
  ---------  ------
 +
1 King       24000
 +
2 Kochhar    17000
 +
3 De Haan    17000
 +
4 Greenberg  12008
 +
5 Russell    14000
 +
</pre>
  
 
11) El departamento de recursos humanos desea ejecutar informes basados en un supervisor. Cree una consulta que solicite al usuario un ID de supervisor y genere el ID de empleado, apellido, salario y departamento de los empleados de ese supervisor. El departamento de recursos humanos desea ordenar el informe en una columna seleccionada. Puede probar los datos con los siguientes valores:
 
11) El departamento de recursos humanos desea ejecutar informes basados en un supervisor. Cree una consulta que solicite al usuario un ID de supervisor y genere el ID de empleado, apellido, salario y departamento de los empleados de ese supervisor. El departamento de recursos humanos desea ordenar el informe en una columna seleccionada. Puede probar los datos con los siguientes valores:

Revisió del 20:07, 7 des 2017

El departamento de recursos humanos necesita su ayuda para crear algunas consultas.

1) Debido a problemas presupuestarios, el departamento de recursos humanos necesita un informe que muestre el apellido y el salario de los empleados que ganan más de 12.000 dólares. Guarde la sentencia SQL como un archivo denominado lab_02_01.sql. Ejecute la consulta.

  LAST_NAME  SALARY
  ---------  ------
1 King	      24000
2 Kochhar     17000
3 De Haan     17000
4 Greenberg   12008
5 Russell     14000
...

2) Abra una hoja de trabajo de SQL nueva. Cree un informe que muestre el apellido y el número de departamento para el número de empleado 176.

  LAST_NAME  DEPARTAMENT_ID
  ---------  --------------
1 Taylor	         80

3) El departamento de recursos humanos necesita encontrar los empleados con salarios tanto altos como bajos. Modifique lab_02_01.sql para mostrar el apellido y el salario de todos los empleados cuyo salario no esté entre 5.000 y 12.000 dólares. Guarde la sentencia SQL como lab_02_03.sql .

  LAST_NAME  SALARY
  ---------  ------
1 King	      24000
2 Kochhar     17000
3 De Haan     17000
4 Austin       4800
5 Pataballa    4800

4) Cree un informe para mostrar el apellido, ID de cargo y fecha de contratación de los empleados cuyos apellidos sean Matos y Taylor. Ordene la consulta en orden ascendente por fecha de contratación.

  LAST_NAME  JOB_ID    HIRE_DATE
  ---------  --------  ---------
1 Taylor     SH_CLERK  24/01/06
2 Matos      ST_CLERK  15/03/06
3 Taylor     SA_REP    24/03/06

5) Muestre el apellido y el ID de departamento de todos los empleados de los departamentos 20 o 50 en orden alfabético ascendente por nombre.

  LAST_NAME  DEPARTAMENT_ID
  ---------  --------------
1 Atkinson	         50
2 Bell	                 50
3 Bissot                 50
4 Bull	                 50
5 Cabrio	         50

6) Modifique el archivo lab_02_03.sql para mostrar el apellido y el salario de los empleados que ganan entre 5.000 y 12.000 dólares y están en el departamento 20 o 50. Etiquete las columnas Employee y Monthly Salary, respectivamente. Vuelva a guardar lab_02_03.sql como lab_02_06.sql . Ejecute la sentencia en el archivo lab_02_06.sql .

  Employee  Monthly Salary
  --------  --------------
1 Weiss	              8000
2 Fripp               8200
3 Kaufling	      7900
4 Vollman	      6500
5 Mourgos	      5800
6 Fay	              6000

7) El departamento de recursos humanos necesita un informe que muestre el apellido y la fecha de contratación de todos los empleados contratados durante el año 2004.

  LAST_NAME  HIRE_DATE
  ---------  ---------
1 Weiss	     18/07/04
2 Mallin     14/06/04
3 Russell    01/10/04
4 King	     30/01/04
5 Sully	     04/03/04
...

8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no tienen un supervisor.

  LAST_NAME  JOB_ID    
  ---------  -------
1 King	     AD_PRES

9) Cree un informe para mostrar el apellido, salario y comisión de todos los empleados que perciben comisiones. Ordene los datos en orden descendente de salario y comisiones. Utilice la posición numérica de la columna en la cláusula ORDER BY .

  LAST_NAME  SALARY  COMMISSION_PCT
  ---------  ------  --------------
1 Russell     14000	        0,4
2 Partners    13500	        0,3
3 Errazuriz   12000	        0,3
4 Ozer	      11500	       0,25
5 Cambrault   11000	        0,3
...

10) Los miembros del departamento de recursos humanos desean tener más flexibilidad con las consultas que está creando. Les gustaría tener un informe que muestre el apellido y el salario de los empleados que ganen más de una cantidad especificada por el usuario después de una solicitud. (Puede utilizar la consulta creada en el ejercicio práctico 1 y modificarla). Guarde esta consulta en un archivo denominado lab_02_10.sql .

Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic en OK.

Diàleg

  LAST_NAME  SALARY
  ---------  ------
1 King	      24000
2 Kochhar     17000
3 De Haan     17000
4 Greenberg   12008
5 Russell     14000

11) El departamento de recursos humanos desea ejecutar informes basados en un supervisor. Cree una consulta que solicite al usuario un ID de supervisor y genere el ID de empleado, apellido, salario y departamento de los empleados de ese supervisor. El departamento de recursos humanos desea ordenar el informe en una columna seleccionada. Puede probar los datos con los siguientes valores:

manager _id = 103, ordenado por last_name
manager_id = 201, ordenado por salary
manager_id = 124, ordenado por employee_id
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE manager_id = &mgr_num
ORDER BY &order_col;

Si tiene tiempo, realice los siguientes ejercicios:

12) Muestre todos los apellidos de los empleados cuya tercera letra sea una "a".

SELECT last_name
FROM employees
WHERE last_name LIKE '__a%';

13) Muestre los apellidos de los empleados que tengan una "a" y una "e" en su apellido.

SELECT last_name
FROM employees
WHERE last_name LIKE '%a%'
AND last_name LIKE '%e%';

Si desea superarse a sí mismo, complete los siguientes ejercicios:

14) Muestre el apellido, cargo y salario de todos los empleados que sean vendedores u oficinistas en el departamento de stock y cuyo salario no sea igual que 2.500, 3.500 o 7.000 dólares.

SELECT last_name, job_id, salary
FROM employees
WHERE job_id IN ('SA_REP', 'ST_CLERK')
AND salary NOT IN (2500, 3500, 7000);

15) Modifique el archivo lab_02_06.sql para mostrar el apellido, salario y comisión de todos los empleados cuya comisión sea del 20%. Vuelva a guardar lab_02_06.sql como lab_02_15.sql. Vuelva a ejecutar la sentencia en el archivo lab_02_15.sql.

SELECT last_name "Employee", salary "Monthly Salary",
       commission_pct
FROM employees
WHERE commission_pct = .20;