Pular para o conteúdo principal

Questão de Banco de Dados — SQL — UNIRIO 2012

Banco de DadosSQL
Código
qg894683
Banca
UNIRIO
Órgão
UNIRIO
Ano
2012
Nível
Médio
Cargo
Técnico em Tecnologia da Infomação - Desenvolvimento
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));
  1. ASELECT 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).
  2. BSELECT 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).
  3. CSELECT 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).
  4. DSELECT 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).
  5. ESELECT 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).
Revelar gabarito e comentário

GabaritoE — 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).

Link permanente: /questoes/qg894683