Created
October 10, 2019 09:47
-
-
Save ljmf00/3b662b7a4b159ddc797751121b175e2a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- ficha 1 | |
-- ex3 | |
SELECT DISTINCT funcao FROM empregado | |
ORDER BY funcao ASC; | |
-- ex4 | |
SELECT nomeemp, salario, NVL(TO_CHAR(comissao), 'Nao existe') AS "comissao" FROM empregado | |
ORDER BY salario DESC, nomeemp ASC; | |
-- ex 8 | |
SELECT 'O ' || UPPER(nomeemp) || ' ganha ' || salario || ' mas queria ganhar ' || salario * 3 AS "salarios" FROM empregado; | |
-- ex 9 | |
SELECT nomeemp, salario, comissao FROM empregado | |
WHERE comissao IS NOT NULL AND comissao > salario | |
ORDER BY nomeemp ASC; | |
-- ex 15 | |
SELECT nomeemp FROM empregado | |
WHERE UPPER(nomeemp) LIKE '%O%' | |
ORDER BY nomeemp ASC; | |
-- ex 17 | |
SELECT nomeemp FROM empregado | |
WHERE NOT UPPER(nomeemp) LIKE '%O%'; | |
-- ex 20 | |
SELECT nomeemp, salario FROM empregado | |
WHERE comissao IS NULL AND salario > 3000; | |
-- ex 22 | |
SELECT | |
nomeemp, | |
TO_CHAR(dtacontratacao, 'DD-MM-YYYY') AS "Data de Contratacao", | |
ADD_MONTHS(dtacontratacao, 12) AS "Data revisao" | |
FROM empregado | |
ORDER BY nomeemp ASC; | |
-- ex 24 | |
SELECT | |
nomeemp, | |
(salario * 14) + NVL(comissao, 0) AS "REMUNERACAO ANUAL" | |
FROM empregado | |
ORDER BY nomeemp ASC; | |
-- ex 25 | |
SELECT | |
nomeemp, | |
CASE | |
WHEN salario < 1500 THEN 'Menor que 1500' | |
WHEN salario > 1500 THEN TO_CHAR(salario) | |
ELSE 'Valor Exato' | |
END AS "SAL" | |
FROM empregado | |
ORDER BY nomeemp; | |
-- ficha 2 | |
-- ex1 | |
SELECT e.nomeemp, e.numdep, d.nomedep, d.localizacao | |
FROM empregado e | |
JOIN departamento d ON e.numdep = d.numdep; | |
-- ex2 | |
SELECT e.nomeemp AS "NOME_EMP", e.salario, d.nomedep, d.localizacao | |
FROM empregado e | |
JOIN departamento d ON e.numdep = d.numdep | |
WHERE e.salario > 1500 | |
ORDER BY e.nomeemp ASC; | |
-- ex3 | |
SELECT | |
e.nomeemp AS "NOME", | |
h.funcao, | |
TO_CHAR(h.dtainicio, 'DD-Mon-YYYY') AS "DATAINICIO", | |
TO_CHAR(h.dtafim, 'DD-MON-YYYY') AS "DATAFIM", | |
d.nomedep AS "DEPARTAMENTO" | |
FROM empregado e | |
JOIN historico_funcao h ON e.numemp = h.numemp | |
JOIN departamento d ON h.numdep = d.numdep | |
ORDER BY | |
e.nomeemp ASC, | |
h.dtafim DESC; | |
-- ex4 | |
SELECT | |
e.nomeemp AS "NOME_EMP", | |
e.funcao, | |
e.salario, | |
es.escala | |
FROM empregado e | |
JOIN escala_salarial es ON es.minsal <= e.salario AND es.maxsal >= e.salario | |
ORDER BY e.salario DESC; | |
-- ex6 | |
SELECT | |
e.nomeemp, | |
e.funcao, | |
e.salario, | |
es.escala, | |
d.nomedep | |
FROM empregado e | |
JOIN escala_salarial es ON es.minsal <= e.salario AND es.maxsal >= e.salario | |
JOIN departamento d ON d.numdep = e.numdep | |
WHERE e.funcao <> 'Analista' | |
ORDER BY e.salario DESC, e.nomeemp DESC; | |
-- ex 8 | |
SELECT | |
e.numemp AS "NUMERO EMPREGADO", | |
e.nomeemp AS "NOME EMPREGADO", | |
em.numemp AS "NUMERO DO SEU CHEFE", | |
em.nomeemp AS "NOME CHEFE" | |
FROM empregado e | |
JOIN empregado em ON em.numemp = e.chefe | |
ORDER BY em.numemp; | |
-- ex 11 | |
SELECT e.nomeemp, d.numdep, d.nomedep, d.localizacao | |
FROM empregado e | |
RIGHT JOIN departamento d ON e.numdep = d.numdep; | |
-- ex 14 | |
SELECT d.numdep | |
FROM empregado e | |
RIGHT JOIN departamento d ON d.numdep = e.numdep | |
WHERE e.numdep IS NULL; | |
-- ficha 4 | |
--ex 1 | |
SELECT COUNT(chefe) AS "Numero de empregados com chefe" | |
FROM empregado | |
WHERE chefe IS NOT NULL; | |
--ex 2 | |
SELECT COUNT(DISTINCT chefe) AS "Numero Chefes na empresa" | |
FROM empregado | |
WHERE chefe IS NOT NULL; | |
--ex 3 | |
SELECT COUNT(comissao) AS "Numero comissoes (>0)" | |
FROM empregado | |
WHERE comissao IS NOT NULL AND comissao > 0; | |
--ex 4 | |
SELECT COUNT(DISTINCT numdep) AS "Numero de Dept. com Emp." | |
FROM empregado | |
WHERE numdep IS NOT NULL; | |
--ex 6 | |
SELECT COUNT(funcao) AS "Numero de diretores" | |
FROM empregado | |
WHERE funcao IS NOT NULL AND funcao = 'Director'; | |
--ex 9 | |
SELECT numdep AS "Numero do departamento", COUNT(numdep) AS "Numero de empregados" | |
FROM empregado | |
GROUP BY numdep | |
ORDER BY COUNT(numdep) DESC; | |
-- ex 10 | |
SELECT funcao, COUNT(funcao) AS "Quant. Empregados" | |
FROM empregado | |
GROUP BY funcao | |
ORDER BY "Quant. Empregados" ASC; | |
-- ex 13 | |
SELECT numdep AS "Numero do departamento", COUNT(numdep) AS "Numero de empregados" | |
FROM empregado | |
GROUP BY numdep | |
HAVING COUNT(numdep) > 3 | |
ORDER BY COUNT(numdep) DESC; | |
-- ex 16 | |
SELECT d.localizacao, COUNT(d.localizacao) AS "FUNCIONARIOS", SUM(e.salario) AS "VOLUME_SALARIO_MENSAL" | |
FROM empregado e | |
JOIN departamento d ON e.numdep = d.numdep | |
GROUP BY d.localizacao; | |
-- ex 18 | |
SELECT MAX(e.salario) AS "MAX", MIN(e.salario) AS "MIN" | |
FROM empregado e | |
JOIN escala_salarial es ON es.minsal <= e.salario AND es.maxsal >= e.salario | |
JOIN departamento d ON e.numdep = d.numdep | |
WHERE es.escala = 4 AND (d.localizacao = 'Lisboa' OR d.localizacao = 'Santarém'); | |
-- ex 19 | |
SELECT funcao AS "Funcao", ROUND(AVG(salario), 0) AS "Media mensal", SUM((salario * 14) + NVL(comissao, 0)) AS "Volume Salarial Anual" | |
FROM empregado | |
GROUP BY funcao | |
ORDER BY funcao; | |
-- ex 20 | |
SELECT SUM((salario * 14) + NVL(comissao, 0)) AS "Remuneracao Salarial Anual" | |
FROM empregado | |
WHERE funcao = 'Vendedor' AND comissao IS NOT NULL AND comissao > 0; | |
-- ex 23 | |
SELECT numdep, funcao, MAX(salario), MIN(salario), AVG(salario) | |
FROM empregado | |
GROUP BY funcao, numdep | |
HAVING numdep = 20 OR numdep = 30 | |
ORDER BY numdep DESC, funcao ASC; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment