Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESGRANRIO 2008

Banco de DadosSQL
Código
cg027251
Banca
CESGRANRIO
Órgão
BNDES
Ano
2008
Nível
Superior
Cargo
Profissional Básico - Análise de Sistemas - Desenvolvimento
Observe as seguintes tabelas de um sistema:Pessoa (nomePessoa, endereço)Filme (nomeFilme, estúdio, verba)Trabalha (nomePessoa(FK), nomeFilme(FK), atividade, salário)Um administrador de dados deseja fazer o seguinte relatório: Todas as pessoas, os filmes nos quais já trabalharam e o total recebido por cada filme. Se uma pessoa nunca trabalhou num filme, ela deve aparecer no relatório. A atividade que a pessoa exerceu no filme (ex: ator, diretor, câmera etc.) não é importante para o relatório.Qual consulta retorna o conjunto resposta correto?
  1. ASELECT P.nomePessoa, T.nomeFilme, sum(T.salário) totalFROM Pessoa P LEFT OUTER JOIN Trabalha TON P.nomePessoa = T.nomePessoaGROUP BY P.nomePessoa, T.nomeFilme
  2. BSELECT T.nomePessoa, T.nomeFilme, sum(T.salário) totalFROM Pessoa P INNER JOIN Trabalha TON P.nomePessoa = T.nomePessoaGROUP BY T.nomePessoa, T.nomeFilme
  3. CSELECT P.nomePessoa, T.nomeFilme, sum(T.salário) totalFROM Pessoa P LEFT OUTER JOIN Trabalha TON P.nomePessoa = T.nomePessoaGROUP BY P.nomePessoa, T.nomeFilme HAVING sum(T.salário) > 0
  4. DSELECT P.nomePessoa, F.nomeFilme, sum(T.salário) totalFROM Pessoa P INNER JOIN Trabalha TON P.nomePessoa = T.nomePessoa INNER JOIN Filme FON F.nomeFilme = T.nomeFilme WHERE T.atividade IS NOT NULL AND T.salário > 0GROUP BY P.nomePessoa, F.nomeFilme
  5. ESELECT T.nomePessoa, T.nomeFilme, sum(T.salário) totalFROM Pessoa P LEFT OUTER JOIN Trabalha TON P.nomePessoa = T.nomePessoa LEFT OUTER JOIN Filme FON F.nomeFilme = T.nomeFilme
Revelar gabarito e comentário

GabaritoA — SELECT P.nomePessoa, T.nomeFilme, sum(T.salário) total FROM Pessoa P LEFT OUTER JOIN Trabalha T ON P.nomePessoa = T.nomePessoa GROUP BY P.nomePessoa, T.nomeFilme

Link permanente: /questoes/cg027251