Banco de dadosSql
- (UNIRIO 2012)
Um desenvolvedor solicita sua ajuda para construir uma consulta que retorne o nome do departamento e o nome do empregado que tem salário igual ao maior salário do departamento. A opção que corresponde ao comando que retorna os dados, CORRETAMENTE, de acordo com a estrutura das tabelas apresentadas a seguir:
DEPARTAMENTO ( CODIGO_DEPT INTEGER PRIMARY KEY, NOME VARCHAR(80) NOT NULL);
EMPREGADO ( CODIGO_EMP INTEGER PRIMARY KEY, NOME VARCHAR(80) NOT NULL,
SALARIO FLOAT, CODIGO_DEPT INTEGER NOT NULL,
CONSTRAINT EMP_DEPT_FK FOREIGN KEY (CODIGO_DEPT)
REFERENCES DEPARTAMENTO(CODIGO_DEPT));
A) SELECT D.NOME, E.NOME FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.CODIGO_DEPT=D.CODIGO_DEPT WHERE E.SALARIO = (SELECT MAX(SALARIO) FROM EMPREGADO E2).
B) SELECT D.NOME, E.NOME FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.CODIGO_DEPT=D.CODIGO_DEPT WHERE E.SALARIO = (SELECT MAX(SALARIO) FROM EMPREGADO E2 WHERE E2.CODIGO_DEPT=E.CODIGO_DEPT GROUP BY SALARIO).
C) SELECT D.NOME, E.NOME FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.CODIGO_DEPT=D.CODIGO_DEPT GROUP BY D.NOME, E.NOME HAVING MAX(SALARIO).
D) SELECT D.NOME, E.NOME FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.CODIGO_DEPT=D.CODIGO_DEPT WHERE E.SALARIO IN (SELECT MAX(SALARIO) FROM EMPREGADO E2 INNER JOIN DEPARTAMENTO D2 ON E2.CODIGO_DEPT=D2.CODIGO_DEPT GROUP BY D2.CODIGO_DEPT).
E) SELECT D.NOME, E.NOME FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.CODIGO_DEPT=D.CODIGO_DEPT WHERE E.SALARIO = (SELECT MAX(SALARIO) FROM EMPREGADO E2 WHERE E2.CODIGO_DEPT=E.CODIGO_DEPT).
Próximo:
EXERCÍCIOS - Exercício 465
Vamos para o Anterior: Exercício 463
Tente Este: Exercício 57
Primeiro: Exercício 1
VOLTAR ao índice: Banco de dados