Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-HR»
Línia 124: | Línia 124: | ||
</pre> | </pre> | ||
:manager_id = 108, ordenado por salary | :manager_id = 108, ordenado por salary | ||
− | |||
<pre> | <pre> | ||
EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID | EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID | ||
Línia 135: | Línia 134: | ||
</pre> | </pre> | ||
:manager_id = 124, ordenado por employee_id | :manager_id = 124, ordenado por employee_id | ||
− | |||
<pre> | <pre> | ||
EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID | EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID |
Revisió del 20:24, 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.
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
EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID ----------- --------- ------ ------------- 1 105 Austin 4800 60 2 104 Ernst 6000 60 3 107 Lorentz 4200 60 4 106 Pataballa 4800 60
- manager_id = 108, ordenado por salary
EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID ----------- --------- ------ ------------- 1 113 Popp 6900 100 2 111 Sciarra 7700 100 3 112 Urman 7800 100 4 110 Chen 8200 100 5 109 Faviet 9000 100
- manager_id = 124, ordenado por employee_id
EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID ----------- --------- ------ ------------- 1 141 Rajs 3500 50 2 142 Davies 3100 50 3 143 Matos 2600 50 4 144 Vargas 2500 50 5 196 Walsh 3100 50 ...
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;