Informática, perguntado por marisdeus8676, 11 meses atrás

Considere as seguintes tabelas: CREATE TABLE Departamento ( IdDep int NOT NULL, NomeDep varchar(15), CONSTRAINT Departamentopkey PRIMARY KEY (IdDep) ); CREATE TABLE Empregado ( IdEmpregado int NOT NULL, IdDep int, salario float, CONSTRAINT Empregadopkey PRIMARY KEY (IdEmpregado), CONSTRAINT EmpregadoIdDepfkey FOREIGN KEY (IdDep) REFERENCES Departamento(IdDep) ON UPDATE RESTRICT ON DELETE RESTRICT ) Considere as seguintes consultas SQL. I. SELECT NomeDep, count(*) FROM Departamento D, Empregado E WHERE D.IdDep=E.IdDep and E.salario > 10000 GROUP BY NomeDep HAVING count(*) > 5; II. SELECT NomeDep, count(*) FROM Departamento D, Empregado E WHERE D.IdDep=E.IdDep and E.salario >10000 and E.IdDep IN (SELECT IdDep FROM Empregado GROUP BY IdDep HAVING count(*) > 5) GROUP BY NomeDep; Quando as consultas acima são realizadas, o que é recuperado em cada uma delas?

Soluções para a tarefa

Respondido por bokomoko
8
I - produz uma lista de com os nomes dos departamentos e quantos funcionários que tem mais de 5 funcionários que ganham salários maiores que 10.000

II - produz uma lista de nome de departamento e quantos funcionários com salários maiores que 10.000 e cujo departamento tenha mais de 5 funcionários (independente dos salários dos funcionários)

Observe a diferença sutil

Perguntas interessantes