

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
De acordo com o estado e o script em linguagem SQL para criação das tabelas status, obra, engenheiro e equipe, responda às questões 31 a 33.
CREATE TABLE status (
codigo int NOT NULL,
descricao varchar(100) NOT NULL,
PRIMARY KEY (codigo),
UNIQUE (descricao)
);
CREATE TABLE obra (
codigo int NOT NULL,
nome varchar(100) NOT NULL,
local varchar(100) NOT NULL,
status int NOT NULL,
PRIMARY KEY (codigo),
UNIQUE (nome),
FOREIGN KEY (status) REFERENCES status (codigo)
);
CREATE TABLE engenheiro (
codigo int NOT NULL,
nome varchar(100) NOT NULL,
identificacao char(10) NOT NULL
PRIMARY KEY (codigo),
);
CREATE TABLE equipe (
obra int NOT NULL,
engenheiro int NOT NULL,
horas int NOT NULL,
PRIMARY KEY (obra,engenheiro),
FOREIGN KEY (obra) REFERENCES obra (codigo),
FOREIGN KEY (engenheiro) REFERENCES engenheiro (codigo)
);

A sentença SQL que MELHOR responde à consulta “Listar o nome de todas as obras, a descrição do status da obra e a soma das horas da equipe de cada obra (importante: obras sem equipe alocada também devem ser listadas).” é:
SELECT o.nome, s.descricao, SUM(e.horas) as soma
FROM obra o INNER JOIN status s ON o.status = s.codigo LEFT JOIN equipe e ON o.codigo = e.obra
SELECT o.nome, s.descricao, SUM(e.horas) as soma
FROM obra o INNER JOIN status s ON o.status = s.codigo INNER JOIN equipe e ON o.codigo = e.obra
GROUP BY o.nome, s.descricao
SELECT o.nome, s.descricao, SUM(e.horas) as soma
FROM obra o INNER JOIN status s ON o.status = s.codigo INNER JOIN equipe e ON o.codigo = e.obra
SELECT o.nome, s.descricao, SUM(e.horas) as soma
FROM obra o INNER JOIN status s ON o.status = s.codigo LEFT JOIN equipe e ON o.codigo = e.obra
GROUP BY o.nome, s.descricao