Imagem de fundo

A sentença SQL que MELHOR responde à consulta “Listar o...

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)

);


Imagem associada para resolução da questão

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).” é:


A

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


B

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


C

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


D

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