42 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.
Resposta (A)
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
Comentário: LEFT OUTER JOIN é uma Operação JOIN que permite especificar a cláusula de junção (dizer como as linhas das tabelas serão combinadas). O OUTER é o responsável por manter registros da tabela da primeira tabela (esquerda) que não possuem correspondência na segunda tabela (a junção acontece com uma linha nula). Por isso marquei de vermelho o trecho da questão que valida a resposta A.
Espero que tenha sido útil!
Nenhum comentário:
Postar um comentário