Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Solucionario de Ejercicios de PL/SQL.pdf
1. Taller SQL Oracle Live - Resultados
SELECT TO_CHAR(ROUND(MAX(salary)), '$99,999.00') AS "Salario Máximo",
TO_CHAR(ROUND(MIN(salary)), '$99,999.00') AS "Salario Mínimo",
TO_CHAR(ROUND(SUM(salary)), '$999,999.00') AS "Salario Planilla",
TO_CHAR(ROUND(AVG(salary)), '$99,999.00') AS "Salario Promedio"
FROM hr.employees;
2. SELECT j.job_title AS "Puesto",
TO_CHAR(ROUND(MAX(e.salary), 2), '$99,999.00') AS "Salario Máximo",
TO_CHAR(ROUND(MIN(e.salary), 2), '$99,999.00') AS "Salario Mínimo",
TO_CHAR(ROUND(SUM(e.salary), 2), '$999,999.00') AS "Salario Total",
TO_CHAR(ROUND(AVG(e.salary), 2), '$99,999.00') AS "Salario Promedio"
FROM hr.employees e
INNER JOIN hr.jobs j ON e.job_id=j.job_id
GROUP BY j.job_title;
3. SELECT j.job_title AS "Puesto",
COUNT(e.job_id) AS "Total Empleados",
TO_CHAR(ROUND(SUM(e.salary), 2), '$999,999.00') AS "Salario Total"
FROM hr.employees e
INNER JOIN hr.jobs j ON e.job_id=j.job_id
GROUP BY j.job_title
ORDER BY 2 DESC
4. SELECT TO_CHAR(ROUND(MAX(salary), 2), '$99,999.00') AS "Salario Máximo",
TO_CHAR(ROUND(MIN(salary), 2), '$99,999.00') AS "Salario Mínimo",
TO_CHAR(ROUND(MAX(salary) - MIN(salary), 2), '$99,999.00') AS "Diferencia Salarial"
FROM hr.employees
5. SELECT DISTINCT(m.manager_id) "Manager",
(-- INICIO SUBQUERY
SELECT TO_CHAR(ROUND(e.salary, 2), '$99,999.00')
FROM hr.employees e
WHERE e.manager_id=m.manager_id
ORDER BY e.salary ASC FETCH NEXT 1 ROWS ONLY -- FIN SUBQUERY
) AS "Salario Mínimo de Empleado"
FROM hr.employees m
INNER JOIN hr.jobs j ON m.job_id=j.job_id
WHERE m.manager_id>0
AND j.min_salary>=6000
ORDER BY 2 DESC
SELECT manager_id "Manager",min(salary)
FROM hr.employees
WHERE manager_id IS NOT NULL
AND job_id NOT IN
(SELECT job_id
FROM employees
GROUP BY job_id
HAVING MIN(salary) <6000)
GROUP BY manager_id
ORDER BY 2 DESC
6.
7. SELECT (first_name || ' ' || last_name) "Nombres Empleado",
d.department_name "Departamento",
j.job_title "Puesto"
FROM hr.employees e
INNER JOIN hr.departments d ON e.department_id=d.department_id
INNER JOIN hr.jobs j ON e.job_id=j.job_id
WHERE d.location_id=1700
ORDER BY e.last_name ASC
8. SELECT (m.first_name || ' ' || m.last_name) "Manager",
j.job_title "Puesto",
d.department_name "Departamento",
TO_CHAR(ROUND(m.salary, 2), '$999,999.00') "Salario",
(SELECT COUNT(employee_id)
FROM hr.employees
WHERE manager_id = m.employee_id) "Total Empleados"
FROM hr.employees m
INNER JOIN hr.jobs j ON m.job_id=j.job_id
INNER JOIN hr.departments d ON m.department_id=d.department_id
WHERE m.employee_id IN
(SELECT DISTINCT(manager_id)
FROM hr.employees)
ORDER BY 5 DESC
9. SELECT (e.first_name || ' ' || e.last_name) "Empleado",
COUNT(jh.employee_id) "Rotaciones"
FROM hr.job_history jh
INNER JOIN hr.employees e ON jh.employee_id=e.employee_
id
GROUP BY (e.first_name || ' ' || e.last_name)
HAVING COUNT(jh.employee_id)>1
10. SELECT TO_CHAR(hire_date, 'YYYY') "Año Contratación",
COUNT(employee_id) "Empleados"
FROM hr.employees
GROUP BY TO_CHAR(hire_date, 'YYYY')
ORDER BY 2 DESC
11. SELECT (e.first_name || ' ' || e.last_name) "Empleado",
TO_CHAR(ROUND(e.salary, 2), '$99,999.00') "Salario Actual",
TO_CHAR(ROUND(j.min_salary, 2), '$99,999.00') "Salario Mínimo Puesto",
TO_CHAR(ROUND(j.max_salary, 2), '$99,999.00') "Salario Máximo Puesto",
TO_CHAR(ROUND((e.salary + e.salary*0.08),2), '$99,999.00') "Nuevo Salario"
FROM hr.employees e
INNER JOIN hr.jobs j ON e.job_id=j.job_id
WHERE e.salary<=j.min_salary
OR e.salary BETWEEN j.min_salary AND (j.min_salary+j.min_salary*0.05)
12. SELECT EXTRACT(YEAR
FROM hire_date) "Año",
COUNT(employee_id) "Empleados que ingresaron",
TO_CHAR(ROUND(SUM(salary), 2), '$999,999.00') "Planilla Mensual",
TO_CHAR(ROUND(SUM(salary)*12, 2), '$9,999,999.00') "Planilla Anual",
TO_CHAR(ROUND(AVG(salary), 2), '$99,999.00') "Salario Promedio Mensual"
FROM hr.employees
GROUP BY EXTRACT(YEAR
FROM hire_date)
ORDER BY 1 ASC
13. SELECT (first_name || ' ' || last_name) "Empleado",
hire_date "Fecha Ingreso",
TO_CHAR(ROUND(salary, 2), '$99,999.00') "Salario Actual",
TO_CHAR(ROUND((salary + salary*0.2),2), '$99,999.00') "Nuevo Salario"
FROM hr.employees
WHERE extract(YEAR
FROM hire_date) BETWEEN 2003 AND 2005
ORDER BY 3 DESC;