Buscar

14 CRIAÇÃO DE RELATORIOS SUBQUERIES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

02/03/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5
Criação de relatórios utilizando
subqueries ou subconsultas
CRIAR RELATÓRIOS A PARTIR DE DADOS EXISTENTES NO BANCO DE DADOS UTILIZANDO COMANDOS
DE SELEÇÃO E ANINHANDO AS CONSULTAS POR MEIO DE SUBQUERIES OU SUBCONSULTAS.
Uma sub-consulta é um comando "select", que é aninhado dentro de outro "select" e que devolve resultados
intermediários.
Regras para construção de subconsultas:
1. A consulta interna tem de estar entre parênteses e sempre é executada primeiro.
2. Admite o aninhamento de N consultas internas ou conjuntamente a operadores lógicos.
3. Retorna uma ou várias linhas ou colunas.
4. Usualmente é usada na cláusula WHERE dos comandos SELECT, DELETE e UPDATE.
5. Pode ser usada na cláusula FROM do comando SELECT.
6. Não pode conter ORDER BY.
Elas podem ser:
 
Simples: é aquela que retorna no máximo uma linha. Nesse caso existem alguns operadores que devem ser 
utilizados, são os operadores lógicos que usamos em aulas anteriores. Exemplo:Exiba o nome do
funcionário 
que tem o maior salário.Existem algumas alternativas que fogem à lógica, a melhor é uso da função de
grupo MAX 
para identificar qual o maior salário, mas não é possível, com uma função de grupo, usar uma coluna
simples, o 
mecanismo irá tentar exibir mais de uma linha, por exemplo, no uso da coluna nome e uma linha para o
maior valor, 
tornando incompatível o uso da instrução, vamos verificar: 
 
1. SELECT nome, MAX(salario) from funcionario1;
Criação de relatórios utilizando subqueries ou subconsultas 01 / 04
02/03/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5
 
Podemos também criar dois relatórios, analisar os resultados e escrever no papel, ou ainda, passar para um
editor de textos o resultado, vejamos:
1. SELECT nome, salario from funcionario1 order by salario desc;
 
Nesse caso a primeira linha do relatório seria a informação procurada, mas se analisarmos, caso a tabela
que armazena esses dados tiver umas100.000 linhas, nosso relatório terá também 100.000 linhas, que não é
o correto ainda.
A solução é o uso de duas instruções aninhadas para conseguir chegar ao resultado esperado.
Primeiro criamos separadamente as instruções e depois podemos juntá-las.
A primeira instrução é voltada à exibição dos dados que se quer:
1. SELECT nome, salario from funcionario1;
A segunda o filtro a ser seguido:
1. SELECT max(salario) from funcionario1;
Agora é só aninhá-las ou encadê-las:
1. SELECT nome, salario from funcionario1 where salario = (SELECT
2.MAX(salario) from funcionario1);
Criação de relatórios utilizando subqueries ou subconsultas 02 / 04
02/03/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5
Agora a instrução ficou perfeita.
 
Caso se queira o contrário agora, exibir o nome do funcionário que possui o menor salário cadastrado:
1. SELECT nome, salario from funcionario1 where salario = (SELECT MIN(salario) from funcionario1);
Outro exemplo é usando um cálculo e, a partir do resultado desse cálculo, a exibição fica vinculada a 
uma condição.
1. SELECT nome, salario from funcionario1 where salario < (SELECT AVG(salario) from funcionario1);
 Multilinhas: é aquela que retorna mais que uma linha. Isso implica uma construção diferente e com 
operadores diferentes, com capacidade de manipular mais elementos. Estes são os operadores que devem 
ser usados: Exemplo:
1. SELECT matricula, nome from funcionario where n_depto in (select id from depto where nome_depto
= 'RH');
Criação de relatórios utilizando subqueries ou subconsultas 03 / 04
02/03/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5
A instrução trará o nome do funcionário e o seu salário, isso somente se ele for menor que a média salarial
calculada. O contrário também funciona. 
Ao SELECT nome, salario from funcionario where salario > (SELECT AVG(salario) from funcionario); 
O exemplo seguinte devolve todos os produtos cujo preço unitário for maior que o de qualquer  produto
vendido com um desconto igual ou maior a 25 por cento:
1. SELECT * from Produtos where PrecoUnidade ANY ( SELECT PrecoUnidade from
DetalhePedido whereDesconto = 0 .25)
Suponhamos que desejamos recuperar todos aqueles clientes que tiverem realizado pelo menos um 
pedido:
1. SELECT Clientes.Companhia, Clientes.Telefone from Clientes where EXISTS ( SELECT IdPedido
from Pedidos where Pedidos.IdPedido = Clientes.IdCliente )
 
Agora que você já estudou esta aula, resolva os exercícios e verifique seu conhecimento. Caso fique alguma
dúvida, leve a questão ao Fórum e divida com seus colegas e professor.
EXERCÍCIO (https://ead.uninove.br/ead/disciplinas/web/_g/desbado80_100/a15ex01_desbado80_100.htm)
Estimule seu raciocínio com o jogo da forca, clique no botão a seguir.
EXERCÍCIO (https://ead.uninove.br/ead/disciplinas/web/_g/desbado80_100/a15ex02_desbado80_100.htm)
REFERÊNCIA
Criação de relatórios utilizando subqueries ou subconsultas 04 / 04
02/03/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5

Outros materiais