1) O departamento de RH precisa de um relatório que retorne o código do departamento, o primeiro nome do empregado, o job_id, o gerente do empregado, o salário e há quantos anos trabalham na empresa (número redondo) os empregados cujos salários estão fora do intervalo padrão de valores da empresa, que é de 5000 a 10000 (incluindo 5000 e 10000) e que a penúltima letra do Job_id é a letra “A”. O resultado deve ser ordernado de maneira ascendente pelo código do departamento e de maneira descendente pelo salário e as colunas nomeadas, respectivamente, por: Dept, Nome, Job, Salario e Anos de empresa.
SELECT department_id "dept", first_name "nome", job_id "job", manager_id "mgr", salary "Salario",
ROUND((sysdate - hire_date)/365) "Anos de Empresa"
FROM EMPLOYEES
WHERE salary NOT BETWEEN 5000 AND 10000 AND job_id LIKE '%A_'
ORDER BY department_id, salary desc;
2) Escreva uma consulta que mostre a média dos salários, o maior salário, o menor salário e quantos empragados existem cujos Job_id termina com “REP”. Nomeia as colunas, respectivamente por “Media”, “Maior”, “Menor” e “Qtd”.
SELECT ROUND(AVG(salary), 2) "Média", MAX(salary) "Maior", MIN(salary) "Menor", COUNT(*) "Qtd"
FROM employees
WHERE job_id LIKE '%REP';
3) O departamento de RH precisa de um relatório que mostre quanto ficará o salário dos empregados após um aumento de 20% no salário mensal. O relatório deve mostrar o nome completo do funcionário, a data de adminissão, o salário atual, o salário com um aumento de 20% e o valor nominal do aumento no salário (a diferença entre o salário atual e o com 20%). As colunas devem, ser chamadas, respectivamente de: Nome Completo, Data de Admissão, Salário, Salário Reajustado e Diferença. E o relatório deve ser ordenado de maneira crescente pelo nome completo do empregado. Escreva o comando SELECT usado para gerar este relatório:
SELECT FIRST_NAME||' '||last_name "Nome Completo", hire_date "Data de Admissão",
salary "Salário", salary + salary * 0.20 "Salário Ajustado", salary * 0.20 "Diferença"
FROM EMPLOYEES
ORDER BY "Nome Completo";
4) O seu gerente precisa de um relatório com todas as profissões para as quais o total de salário pago para cada uma delas seja superior ou igual a 50000. O Relatório deve conter a profissão (Job_id) e o total se salário e mostrar o resultado de forma que as profissões que mais consomem recursos financeiros sejam mostradas primeiro. As colunas devem ser nomeadas como: “Cargo” e “Total de Salários” Saída esperada:
SELECT job_id "Cargo", SUM(salary) "Total de Salários"
FROM employees
GROUP BY JOB_ID
HAVING SUM(SALARY) > 50000
ORDER BY SUM(salary) DESC;
5) A tabela LOCATIONS contém o cadastros das cidades. Pede-se:
a) Escreva o comando usado para descrever as colunas da tabela LOCATIONS
describe locations;
b) Escreva um comando SELECT que retorne o nome da cidade, o estado, o código do país e endereço de todas as cidades do Japão(JP). Além das cidades do Japão, deve retornar também as cidades que estão nos Estados Unidos (US) ou no Candá (CA) e que o endereço termina com “St”.
Saída esperada:
select city, state_province, country_id, street_address
from locations
where country_id = 'JP' or (country_id in ('US','CA') and street_address like '%St');