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?
- 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
- 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
- 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
- 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
- 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