Magna Concursos
421096 Ano: 2013
Disciplina: TI - Banco de Dados
Banca: UFRN
Orgão: UFRN
Provas:

As tabelas TIME, TORNEIO e PARTIDA, representadas abaixo, fazem parte de uma base de dados utilizada para armazenar os resultados dos torneios de Futebol.

TIME(ID*, NOME)

TORNEIO(ID*, NOME, DATA_INICIO, DATA_FIM)

PARTIDA(ID*, DATA_HORA_INICIO, LOCAL, ID_TORNEIO, ID_TIME1, ID_TIME2, ID_TIME_VENCEDOR, GOLS_TIME1, GOLS_TIME2)

As colunas participantes das chaves primárias estão com o símbolo * no nome. Além disso, todos os campos são NOT NULL, exceto o ID_TIME_VENCEDOR que pode ser null, quando a partida terminou em empate.

As chaves estrangeiras estão definidas na tabela abaixo.

Origem Destino
Tabela Campo Tabela Campo

PARTIDA

ID_TORNEIO TORNEIO ID

PARTIDA

ID_TIME1 TIME ID

PARTIDA

ID_TIME2 TIME ID

PARTIDA

ID_TIME_VENCEDOR TIME ID

O vencedor de um torneio é o time com maior número de pontos nesse torneio. Além disso, cada vitória vale 3 pontos e os empates, 1 ponto. Considere o caso exposto anteriormente e a consulta SQL abaixo:

SELECT T.NOME,SUM(PO) AS S FROM

(

SELECT T.ID AS I, 0 AS PO

FROM TIME T

UNION

SELECT ID_TIME_VENCEDOR AS I,3 AS PO

FROM PARTIDA P

WHERE ID_TIME_VENCEDOR IS NOT NULL

UNION

SELECT ID_TIME1 AS I,1 AS PO

FROM PARTIDA P

WHERE ID_TIME_VENCEDOR IS NULL

UNION

SELECT ID_TIME2 AS I,1 AS PO

FROM PARTIDA P

WHERE ID_TIME_VENCEDOR IS NULL

) SB

INNER JOIN TIME T ON (T.ID=I)

GROUP BY T.NOME

ORDER BY S DESC

A execução do comando SQL acima produz como resultado

 

Provas

Questão presente nas seguintes provas

Analista de TI - 101

50 Questões