quarta-feira, 6 de junho de 2007

Banco de Dados Exercício 7



1. Selecione os nomes de todos os empregados do departamento 'Research' que trabalham mais de 10 horas por semana no projeto 'ProdutoX'.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_WORKS_ON W, R11_PROJECT P, R11_DEPARTMENT D
WHERE P.PNUMBER = W.PNO AND W.ESSN = E.SSN AND W.HOURS > 10
AND P.DNUM = D.DNUMBER AND P.PNAME = 'ProdutoX' AND D.DNAME = 'Research';

2. Selecionar o nome dos empregados que tenham um dependente com o mesmo primeiro nome que o deles.

SELECT E.FNAME' 'E.LNAME
FROM R11_EMPLOYEE E
WHERE E.FNAME = ANY
(SELECT D.DEPENDENT_NAME
FROM R11_DEPENDENT D
WHERE D.ESSN = E.SSN)

3. Selecionar o nome dos empregados que são diretamente supervisionados por 'Franklin Wong'.

SELECT E.FNAME' 'E.LNAME
FROM R11_EMPLOYEE E
WHERE E.SUPERSSN =
(SELECT E1.SSN
FROM R11_EMPLOYEE E1
WHERE E1.FNAME = 'Franklin' AND E1.LNAME = 'Wong');

4. Selecionar o nome do projeto e o número total de horas por semana (de todos os empregados) gastas no projeto.

SELECT P.PNAME, SUM(W.HOURS)
FROM R11_PROJECT P, R11_WORKS_ON W
WHERE P.PNUMBER = W.PNO GROUP BY P.PNAME;

5. Selecionar o nome dos empregados que trabalham em todos os projetos.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_WORKS_ON WO, R11_PROJECT P
WHERE WO.PNO = P.PNUMBER AND WO.ESSN = E.SSN
GROUP BY E.FNAME;

6. Selecionar o nome dos empregados que não trabalham em nenhum projeto.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_WORKS_ON WO, R11_PROJECT P
WHERE WO.PNO = P.PNUMBER AND WO.ESSN NOT IN E.SSN
GROUP BY E.FNAME;

7. Selecionar o nome do departamento e a média salarial de seus empregados.

SELECT DPTO.DNAME, AVG(E.SALARY) AS MEDIA_SALARIO
FROM R11_DEPARTMENT DPTO, R11_EMPLOYEE E
WHERE E.SSN = DPTO.MGRSSN
GROUP BY DPTO.DNAME;

8. Selecione a média salarial dos empregados do sexo feminino.

SELECT AVG(E.SALARY)
FROM R11_EMPLOYEE E
WHERE E.SEX = 'F';

9. Selecione o nome e o endereço dos empregados que trabalhem em pelo menos um projeto localizado em 'Houston', mas cujo departamento não se localiza em 'Houston'.

SELECT E.FNAME, E.ADDRESS
FROM R11_EMPLOYEE E, R11_PROJECT P, R11_DEPARTMENT DPT, R11_DEPT_LOCATIONS DL, R11_WORKS_ON W
WHERE E.DNO = DPT.DNUMBER AND DPT.DNUMBER = DL.DNUMBER
AND DL.DLOCATION <> 'Houston' AND E.SSN = W.ESSN
AND W.PNO = P.PNUMBER AND P.PLOCATION = 'Houston'
GROUP BY E.FNAME, E.ADDRESS;

10. Selecione o nome de todos os gerentes de departamento que não tenham dependentes.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_DEPARTMENT DPT
WHERE E.SSN = DPT.MGRSSN AND E.SSN NOT IN
(SELECT D.ESSN
FROM R11_DEPENDENT D);

Nenhum comentário:

Postar um comentário