Prova de implementação de banco de dados
Por: dfingolo • 5/4/2017 • Exam • 383 Palavras (2 Páginas) • 228 Visualizações
1. Listar o nome dos funcionários que tem o salário superior a média por meio de subconsulta. (1,0)
SELECT nomefunc
FROM atividade_extra.funcionario
WHERE salario > (SELECT (SUM(salario)/COUNT(idfuncionario)) FROM atividade_extra.funcionario);
2. Exiba o código para criar a tabela Peça, considerando que as demais tabelas já existem (fazer uso de restrições para as chaves - constraints). (1,0)
CREATE TABLE atividade_extra.Peca
(
idPeca serial,
Maquina_idMaquina integer NOT NULL,
Funcionario_idFuncionario integer NOT NULL,
Modelo_idModelo integer NOT NULL,
PrecoVenda numeric(12,2),
PrecoCusto numeric(12,2),
Descricao character varying(50),
DataInicio date,
DataFinal date,
CONSTRAINT pk_Peca PRIMARY KEY (idPeca),
CONSTRAINT fk_Maquina FOREIGN KEY (Maquina_idMaquina)
REFERENCES atividade_extra.Maquina (idMaquina) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_Funcionario FOREIGN KEY (Funcionario_idFuncionario)
REFERENCES atividade_extra.Funcionario (idFuncionario) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_Modelo FOREIGN KEY (Modelo_idModelo)
REFERENCES atividade_extra.Modelo (idModelo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);
3. Listar os totais em dinheiro que a firma arrecadará por modelo de peça. (1,5)
SELECT nomemodelo AS modelo, 'R$'||' '||SUM((precovenda - precocusto))::text as total
FROM atividade_extra.Modelo m
INNER JOIN atividade_extra.peca p ON p.modelo_idmodelo = m.idmodelo
GROUP BY nomemodelo;
4. Contar quantas costureira estão habilitadas para cada tipo de máquina. Usar o campo tipo da tabela TipoMaquina. (1,5)
SELECT tm.tipo, COUNT(m.costureira_funcionario_idfuncionario) AS total_costureiras
FROM atividade_extra.tipomaquina tm
INNER JOIN atividade_extra.maquina m ON tm.idtipomaquina = m.tipomaquina_idtipomaquina
GROUP BY tm.tipo;
5. Listar o total de peças produzidas por funcionário (usar o nome do funcionário). (1,5)
SELECT
...