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

De wikiserver
Dreceres ràpides: navegació, cerca

1) Cree un informe que produzca los siguientes resultados para cada empleado: <apellido_empleado> earns <salario> mensual pero desea<3 veces el salario.>.Etiquete la columna como Dream Salaries.

SELECT last_name || ' earns '
       || TO_CHAR(salary, 'fm$99,999.00')
       || ' monthly but wants '
       || TO_CHAR(salary * 3, 'fm$99,999.00')
       || '.' "Dream Salaries"
FROM employees;

2) Muestre el apellido, fecha de contratación y fecha de revisión de salario de cada empleado, que es el primer lunes después de seis meses de contrato. Etiquete la columna como REVIEW. Formatee las fechas para que aparezcan en un formato similar a “Lunes treinta y uno de julio de 2000”.

SELECT last_name, hire_date,
       TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date, 6),'Dilluns'),
       'fmDay, "the" Ddspth "of" Month, YYYY') REVIEW
FROM employees;

3) Muestre el apellido, fecha de contratación y día de la semana en el que empezó a trabajar el empleado. Etiquete la columna como DAY. Ordene los resultados por el día de la semana, empezando por el lunes.

SELECT last_name, hire_date,
       TO_CHAR(hire_date, 'DAY') DAY
FROM employees
ORDER BY TO_CHAR(hire_date, 'd');

4) Cree una consulta que muestre los apellidos y comisiones de los empleados. Si un empleado no obtiene ninguna comisión, indique "No Commission". Etiquete la columna como COMM.

SELECT last_name,
       NVL(TO_CHAR(commission_pct), 'No Commission') COMM
FROM employees;

5) Con la función DECODE, escriba una consulta que muestre el grado de todos los empleados según el valor de la columna JOB_ID, utilizando los siguientes datos:

Cargo                 Grado

AD_PRES                 A
ST_MAN                  B
IT_PROG                 C
SA_REP                  D
ST_CLERK                E
None of the above       0      
SELECT job_id, decode (job_id,
                       'ST_CLERK', 'E',
                       'SA_REP',   'D',
                       'IT_PROG',  'C',
                       'ST_MAN',   'B',
                       'AD_PRES',  'A',
                       '0') GRADE
FROM employees;

6) Vuelva a escribir la sentencia del ejercicio anterior utilizando la sintaxis CASE.

SELECT job_id, CASE job_id
               WHEN 'ST_CLERK' THEN 'E'
               WHEN 'SA_REP'   THEN 'D'
               WHEN 'IT_PROG'  THEN 'C'
               WHEN 'ST_MAN'   THEN 'B'
               WHEN 'AD_PRES'  THEN 'A'
               ELSE '0' END GRADE
FROM employees;