-- 1. Seleccionar el nombre de los empleados y su salario aumentado un 1% para los empleados del departamento 100, ordenados alfabéticamente en orden decreciente:
SELECT first_name, salary*1.01 FROM employees 
WHERE employees.department_id = 100 ORDER BY employees.first_name asc;

-- Comentario: Se seleccionan los nombres de los empleados y su salario aumentado en un 1%, utilizando * 1.01 para el incremento. Luego, se ordenan los resultados en orden alfabético decreciente por el nombre.
-- 2. Para cada Centro departments, seleccionar el presupuesto medio de los departamentos que tienen su sede en él:

-- Comentario: Se calcula el presupuesto medio por cada centro, utilizando la función agregada AVG(). El GROUP BY agrupa los departamentos por centro.
-- 3. Seleccionar el nombre de los empleados junto con su edad actual para aquellos empleados que trabajan en el departamento de PERSONAL:
SELECT first_name, DATEDIFF(CURDATE(),hire_date)/365 FROM employees
INNER JOIN departments on departments.department_id = employees.department_id 
WHERE departments.department_name = 'Human Resources';

-- Comentario: Se calcula la edad restando el año de nacimiento del empleado al año actual, utilizando YEAR(CURDATE()). Se filtra por empleados en el departamento "PERSONAL".
-- 4. Seleccionar la dirección donde están ubicados los departamentos:
SELECT departments.department_name, locations.street_address FROM departments
INNER JOIN locations ON locations.location_id = departments.location_id;


-- Comentario: Se realiza una unión entre las tablas de centros, departamentos y empleados. Se seleccionan las direcciones de los centros donde al menos un empleado tenga más de tres hijos.
-- 5. Contar el número de empleados que no tienen ninguna a en su nombre ni apellido.
SELECT count(employee_id) FROM employees WHERE employees.last_name NOT LIKE "%a%" and employees.first_name NOT LIKE "%a%";
-- Comentario: Se agrupan los empleados por el número de hijos y se cuenta cuántos empleados tienen ese número de hijos utilizando COUNT(*).
-- 6. Mostrar el nombre y el salario de los empleados que no tienen comisión:

-- Comentario: Se seleccionan los empleados cuyo campo comision es NULL, lo que indica que no tienen comisión.
-- 7. Mostrar el salario medio de los empleados que no tienen comisión:

-- Comentario: Se calcula el salario medio de los empleados sin comisión, utilizando la función AVG().
-- 8. Mostrar el nombre y el salario de los empleados que tienen comisión:

-- Comentario: Se seleccionan los empleados cuyo campo comision no es NULL, indicando que tienen comisión.
-- 9. Mostrar el salario medio de los empleados que tienen comisión:

-- Comentario: Se calcula el salario medio de los empleados con comisión.
-- 10. Seleccionar el nombre de los departamentos en los que trabajan empleados cuyo salario máximo no supere los 2000 €:

-- Comentario: Se agrupan los departamentos por nombre y se utiliza HAVING para filtrar aquellos cuyo salario máximo en el departamento no supera los 2000 €.
-- 11. Mostrar el nombre de cada empleado, el nombre del departamento en el que trabajan, su edad y su futuro salario cuando tenga 60 años:

-- Comentario: Se calcula la edad de los empleados y su salario futuro cuando tengan 60 años, asumiendo un aumento del 1% cada año.
-- 12. Mostrar la dirección de los centros, el nombre de los empleados que trabajan en él, el nombre del departamento concreto en el que trabajan y quién es el director del departamento:

-- Comentario: Se seleccionan las direcciones de los centros, junto con los nombres de los empleados, los departamentos en los que trabajan y el nombre del director del departamento.
