Banco De Dados
Trabalho Universitário: Banco De Dados. Pesquise 862.000+ trabalhos acadêmicosPor: michaelropke • 8/5/2014 • 805 Palavras (4 Páginas) • 295 Visualizações
1) Listar os nomes das impressoras que sejam fabricadas pelo fabricante
denominado IBM eque sejam revendidas pelo revendedor denominado
COLOMBO
SELECT i.nomeimp
FROM impressora i,fabricante f,vende v,revendedor r
WHERE i.codfab=f.codfab
AND f.nomefab='IBM'
AND r.nomerev='COLOMBO'
AND r.codrev=v.codrev
AND v.codimp=i.codimp;
2) Listar os nomes das impressoras com os nomes dos respectivos fabricantes
e com osnomes dos tipos destas impressoras
SELECT i.nomeimp, f.nomefab, t.nometipo
FROM impressora i, fabricante f, tipo t
WHERE i.codfab=f.codfab
AND i.codtipo=t.codtipo
3) Listar os nomes das impressoras que são revendidas por mais de 5
revendedores
SELECT i.nomeimp, count(v.codimp)
FROM impressora i,vende v,revendedor r
WHERE v.codimp = i.codimp
AND v.codrev = r.codrev
GROUP BY i.codimp
HAVING count(v.codimp) > 3;
4) Listar os nomes das cidades que não tenham revendedores
SELECT c.nomecid, r.nomerev
FROM cidade c
LEFT JOIN revendedor r
ON c.codcid=r.codcid
WHERE r.nomerev IS NULL
5) Listar os nomes dos revendedores que NÃO vendem a impressora
denominada HP LASER765
SELECT DISTINCT r.nomerev
FROM revendedor as r, vende as v, impressora as i
WHERE v.codimp=i.codimp
AND v.codrev=r.codrev
AND r.codrev
NOT IN (SELECT r.codrev FROM revendedor as r, vende as v, impressora as i
WHERE v.codimp=i.codimp
AND v.codrev=r.codrev
AND i.nomeimp='HP LASER 765');
6) Listar quantas impressoras são fabricadas pelo fabricante denominado IBM
SELECT count(f.nomefab)
FROM impressora i, fabricante f
WHERE i.codfab=f.codfab
AND f.nomefab = 'IBM';
7) Listar quantas impressoras são revendidas pelo revendedor denominado
COLOMBO
SELECT count(r.nomerev)
FROM impressora i, revendedor r,vende v
WHERE v.codrev=r.codrev
AND v.codimp=i.codimp
AND r.nomerev = 'COLOMBO';
8) Listar os nomes das cidades com os nomes dos seus revendedores, listar
inclusive osnomes das cidades que não tenham revendedores
SELECT c.nomecid,r.nomerev
FROM cidade c
LEFT JOIN revendedor r
ON c.codcid = r.codcid;
9) Listar os nomes das cidades com o respectivo número de revendedores
SELECT c.nomecid, count(r.codcid) FROM cidade c
LEFT JOIN revendedor r ON r.codcid=c.codcid G
ROUP BY c.nomecid;
10) Listar os nomes dos fabricantes que fabriquem mais de 3 impressoras
SELECT f.nomefab, count(i.codfab) FROM impressora i
LEFT JOIN fabricante f ON i.codfab=f.codfab
GROUP BY f.codfab HAVING count(i.codfab) >=3;
11) Deseja-se saber quais os nomes das impressoras revendidas pela
COLOMBO. Aqui deseja-se saber os nomes das impressoras que são fabricadas
pela IBM ou que são do tipo denominado LASER
SELECT i.nomeimp
FROM impressora i,vende v,revendedor r
WHERE v.codimp=i.codimp
AND v.codrev=r.codrev
AND nomerev='Colombo'
UNION SELECT i.nomeimp FROM impressora i,tipo t,fabricante f
WHERE i.codfab=f.codfab
AND i.codtipo=t.codtipo
AND (nometipo = 'LASER' OR nomefab = 'IBM');
12) Listar os nomes das impressoras que tem o maior valor de revenda
SELECT i.nomeimp,MAX(valor_venda)
FROM impressora i,vende v
WHERE i.codimp=v.codimp
GROUP BY valor_venda,i.nomeimp
ORDER BY valor_venda DESC LIMIT 1;
13) Listar os nomes das impressoras revendidas pela colombo cujo valor seja
maior do que a média de venda das impressoras nos outros revendedores
SELECT i.nomeimp
FROM impressora i, revendedor r, vende v
WHERE v.codrev=r.codrev
AND v.codimp=i.codimp
AND r.nomerev='Colombo'
AND v.valor_venda > (SELECT AVG(valor_venda) FROM vende);
...