Este artigo explica como utilizar consultas de valores mais altos e consultas de totais para encontrar as datas mais recentes ou mais antigas num conjunto de registos. Isto pode ajudá-lo a responder a uma variedade de perguntas empresariais, como quando um cliente efetuou uma encomenda pela última vez ou que cinco trimestres foram os melhores para vendas, por cidade.
Neste artigo
Descrição Geral
Pode classificar os dados e rever os itens mais bem classificados com uma consulta dos valores mais altos. Uma consulta de valor superior é uma consulta selecionar que devolve um número especificado ou percentagem de valores da parte superior dos resultados, por exemplo, as cinco páginas mais populares num web site. Pode utilizar uma consulta dos valores mais altos em relação a qualquer tipo de valores. Estes não têm de ser números.
Se quiser agrupar ou resumir os seus dados antes de os classificar, não tem de utilizar uma consulta dos valores mais altos. Por exemplo, digamos que tem de localizar os números de vendas para uma determinada data para cada localidade na qual a sua empresa opera. Nesse caso, as localidades tornam-se categorias (tem de localizar os dados por localidade), por isso deverá utilizar uma consulta de totais.
Quando utiliza uma consulta de valores mais altos para localizar registos que contenham as datas mais recentes ou mais antigas numa tabela ou grupo de registos, pode responder a diversas perguntas empresariais, como as seguintes:
-
Quem tem feito mais vendas ultimamente?
-
Quando foi a última encomenda efetuada por um cliente?
-
Quando são os próximos três aniversários na equipa?
Para fazer uma consulta de valor superior, comece por criar uma consulta selecionar. Em seguida, ordene os dados de acordo com a sua pergunta, quer esteja à procura da parte superior ou inferior. Se precisar de agrupar ou resumir os dados, transforme a consulta selecionar numa consulta de totais. Em seguida, pode utilizar uma função de agregação, como Máx ou Mín para devolver o valor mais alto ou mais baixo, ou Primeiro ou Último para devolver a data mais antiga ou mais recente.
Este artigo pressupõe que os valores de data que utiliza têm o tipo de dados Data/Hora. Se os valores de data estiverem num campo de Texto, .
Considere utilizar um filtro em vez de uma consulta dos valores mais altos
Normalmente, um filtro é melhor se tiver uma data específica em mente. Para determinar se deve criar uma consulta dos valores mais altos ou aplicar um filtro, considere o seguinte:
-
Se quiser devolver todos os registos em que a data corresponde, é anterior ou posterior a uma data específica, utilize um filtro. Por exemplo, para ver as datas para as vendas entre abril e julho deve aplicar um filtro.
-
Se quiser devolver uma quantidade especificada de registos com as datas mais recentes ou mais recentes num campo e não souber os valores exatos da data ou estes não forem importantes, crie uma consulta dos valores mais altos. Por exemplo, para ver os cinco melhores trimestres de vendas, utilize uma consulta dos valores mais altos.
Para obter mais informações sobre como criar e utilizar filtros, consulte o artigo Aplicar um filtro para ver registos selecionados numa base de dados do Access.
Preparar dados de exemplo a acompanhar juntamente com os exemplos
Os passos neste artigo utilizam os dados nas seguintes tabelas de exemplo.
A tabela Funcionários
|
Apelido |
Nome Próprio |
Address |
Cidade |
CountryOrR egion |
Data de Nascimento |
Data de Contratação |
|
Sarmento |
Guilherme |
Rua das Margaridas n.º 1 |
Lisboa |
Portugal |
05-fev-1968 |
10-jun-1994 |
|
Mota |
Adriana |
Rua das Túlipas n.º52 |
Braga |
Portugal |
22-mai-1957 |
22-nov-1996 |
|
Costa |
Samuel |
3122 75th Ave. S.W. |
Setúbal |
Portugal |
11-nov-1960 |
11-mar-2000 |
|
Cunha |
Diogo |
Rua das Papoilas n.º45 |
Coimbra |
Portugal |
22-mar-1964 |
22-jun-1998 |
|
Martins |
Duarte |
Rua dos Limoeiros n.º 22 |
Mortágua |
Portugal |
05-jun-1972 |
05-jan-2002 |
|
Barbosa |
Isabel |
Rua dos Carvalhos n.º 12 |
Setúbal |
Portugal |
23-jan-1970 |
23-abr-1999 |
|
Sousa |
Francisco |
Rua das Rosas n.º 67 |
Évora |
Portugal |
14-abr-1964 |
14-out-2004 |
|
Macedo |
Estrela |
Rua das Estrelícias n.º 78 |
Portalegre |
Portugal |
29-out-1959 |
29-mar-1997 |
A tabela EventType
|
IDDoTipo |
Tipo de Evento |
|
1 |
Lançamento de Produto |
|
2 |
Função Corporativa |
|
3 |
Função Privada |
|
4 |
Angariação de Fundos |
|
5 |
Feira de Vendas |
|
6 |
Palestra |
|
7 |
Concerto |
|
8 |
Exposição |
|
9 |
Feira de Rua |
A tabela Clientes
|
IDDoCliente |
Empresa |
Contacto |
|
1 |
Contoso, Ltd. Graphic |
Artur Cunha |
|
2 |
Tailspin Toys |
Mariana Araújo |
|
3 |
Fabrikam |
Sónia Teixeira |
|
4 |
Wingtip Toys |
Luís Rodrigues |
|
5 |
A. Datum |
Vítor Neves |
|
6 |
Adventure Works |
Miguel Cardoso |
|
7 |
Design Institute |
Gonçalo Almeida |
|
8 |
School of Fine Art |
Adriana Mota |
A tabela Eventos
|
IDDoEvento |
Tipo de Evento |
Cliente |
Data do Evento |
Preço |
|
1 |
Lançamento de Produto |
Contoso, Ltd. |
4/14/2011 |
10 000 € |
|
2 |
Função Corporativa |
Tailspin Toys |
4/21/2011 |
8 000 € |
|
3 |
Feira de Vendas |
Tailspin Toys |
1/5/11 |
25 000 € |
|
4 |
Exposição |
Graphic Design Institute |
5/13/2011 |
4 500 € |
|
5 |
Feira de Vendas |
Contoso, Ltd. |
5/14/2011 |
55 000 € |
|
6 |
Concerto |
School of Fine Art |
5/23/2011 |
12 000 € |
|
7 |
Lançamento de Produto |
A. Datum |
6/1/2011 |
15 000 € |
|
8 |
Lançamento de Produto |
Wingtip Toys |
6/18/2011 |
21 000 € |
|
9 |
Angariação de Fundos |
Adventure Works |
6/22/2011 |
1 300 € |
|
10 |
Palestra |
Graphic Design Institute |
6/25/2011 |
2 450 € |
|
11 |
Palestra |
Contoso, Ltd. |
04/07/2011 |
3 800 € |
|
12 |
Feira de Rua |
Graphic Design Institute |
04/07/2011 |
5 500 € |
Nota: Os passos nesta secção assumem que as tabelas Clientes e Tipo de Evento residem no lado "um" das relações um-para-muitos com a tabela Eventos. Neste caso, a tabela Eventos partilha os campos IDDoCliente e IDDoTipo. As consultas de totais descritas nas secções seguintes não funcionarão sem essas relações.
Colar os dados de exemplo em folhas de cálculo do Excel
-
Inicie o Excel. É aberto um livro vazio.
-
Prima SHIFT+F11 para inserir uma folha de cálculo (precisará de quatro).
-
Copie os dados de cada tabela de exemplo para uma folha de cálculo vazia. Inclua os cabeçalhos de coluna (a primeira linha).
Criar tabelas de base de dados a partir das folhas de cálculos:
-
Selecione os dados da primeira folha de cálculo, incluindo os cabeçalhos de coluna.
-
Clique com o botão direito do rato no Painel de Navegação e, em seguida, clique em Colar.
-
Clique em Sim para confirmar que a primeira linha contém cabeçalhos de coluna.
-
Repita os passos 1 a 3 para cada uma das folhas de cálculo restantes.
Localizar a data mais ou menos recente
Os passos nesta secção utilizam os dados de exemplo para ilustrar o processo de criação de uma consulta dos valores mais altos.
Criar uma consulta básica dos valores mais altos
-
No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.
-
Faça duplo clique na tabela Funcionários e, em seguida, clique em Fechar.
Se estiver a utilizar os dados de exemplo, adicione a tabela Funcionários à consulta.
-
Adicione os campos que pretende utilizar na sua consulta na grelha de estrutura. Pode fazer duplo clique em cada campo ou arrastar e largar cada campo numa célula em branco na linha Campo.
Se utilizar a tabela de exemplo, adicione os campos Nome, Apelido e Data de Nascimento.
-
No campo que contém os seus valores mais altos ou mais baixos (o campo Data de Nascimento, se utilizar a tabela de exemplo), clique na linha Ordenar e selecione Ascendente ou Descendente.
A sequência de ordenação Descendente devolve a data mais recente e a sequência de ordenação Ascendente devolve a data mais antiga.
Importante: Só tem de definir um valor na linha Ordenar para campos que contêm as suas datas. Se especificar uma sequência de ordenação para outro campo, a consulta não devolverá os resultados pretendidos.
-
No separador Estrutura, no grupo Ferramentas, clique na seta para baixo junto a Tudo (a lista Primeiros Valores) e escreva o número de registos que pretende ver ou selecione uma opção da lista.
-
Clique em Executar
para executar a consulta e apresentar os resultados na vista de Folha de Dados. -
Guarde a consulta como NextBirthDays.
Pode ver que este tipo de consulta dos valores mais altos pode responder a questões básicas, como quem é a pessoa mais velha ou mais nova na empresa. Os passos seguintes explicam como utilizar expressões e outros critérios para dar poder e flexibilidade à consulta. Os critérios mostrados no passo seguinte devolvem os três aniversários de funcionários seguintes.
Adicionar critérios à consulta
Estes passos utilizam a consulta criada no procedimento anterior. Pode acompanhar uma consulta de valores superiores diferente, desde que contenha dados de Data/Hora reais e não valores de texto.
Sugestão: Se quiser compreender melhor como funciona esta consulta, alterne entre a vista Estrutura e a vista Folha de Dados em cada passo. Se quiser ver o código de consulta real, mude para a vista SQL. Para alternar entre vistas, clique com o botão direito do rato no separador na parte superior da consulta e, em seguida, clique na vista pretendida.
-
No Painel de Navegação, clique com o botão direito do rato na consulta NextBirthDays e, em seguida, clique em Vista estrutura.
-
Na grelha de estrutura da consulta, na coluna à direita de BirthDate, introduza o seguinte:MonthBorn: DatePart("m",[BirthDate]).Esta expressão extrai o mês de BirthDate com a função DatePart .
-
Na coluna seguinte da grelha de estrutura da consulta, introduza o seguinte:DayOfMonthBorn: DatePart("d",[BirthDate])Esta expressão extrai o dia do mês de BirthDate através da função DatePart.
-
Desmarque as caixas de verificação na linha Mostrar para cada uma das duas expressões que acabou de introduzir.
-
Clique na linha Ordenar para cada expressão e, em seguida, selecione Ascendente.
-
Na linha Critérios da coluna Data de Nascimento , escreva a seguinte expressão:Mês([Data de Nascimento]) > Mês(Data()) OU Mês([Data de Nascimento])= Mês(Data()) E Dia([Data de Nascimento])>Dia(Data())Esta expressão faz o seguinte:
-
Month( [Birth Date]) > Month(Date()) especifica que a data de nascimento de cada colaborador se enquadra num mês futuro.
-
O Mês([Data de Nascimento])= Mês(Data()) E Dia([Data de Nascimento])>Dia(Data()) especifica que, se a data de nascimento ocorrer no mês atual, o aniversário cai sobre ou depois do dia atual.
Em suma, esta expressão exclui todos os registos onde o aniversário ocorre entre 1 de janeiro e a data atual.
Sugestão: Para obter mais exemplos de expressões de critérios de consulta, veja o artigo Exemplos de critérios de consulta.
-
-
No separador Estrutura , no grupo Configuração da Consulta , escreva 3 na caixa Enter .
-
No separador Estrutura, no grupo Resultados, clique em Executar
.
Nota: Na sua própria consulta com os seus próprios dados, por vezes poderá ver mais registos do que especificou. Se os seus dados contiverem múltiplos registos que partilham um valor que está entre os valores mais altos, a consulta devolverá todos esses registos, mesmo que isso signifique devolver mais registos do que queria.
Localizar as datas mais ou menos recentes para grupos de registos
Utilize uma consulta de totais para encontrar as datas mais antigas ou mais recentes dos registos que se enquadram em grupos, como eventos agrupados por cidade. Uma consulta de totais é uma consulta selecionar que utiliza funções de agregação (como Agrupar Por, Mem, Máx., Contar, Primeiro e Último) para calcular valores para cada campo de saída.
Inclua o campo que pretende utilizar para categorias – para agrupar por – e o campo com valores que pretende resumir. Se incluir outros campos de saída ( por exemplo, os nomes dos clientes quando está a agrupar por tipo de evento), a consulta também utilizará esses campos para criar grupos, alterando os resultados para que não respondam à sua pergunta original. Para etiquetar as linhas com outros campos, crie uma consulta adicional que utilize a consulta de totais como origem e adicione os campos adicionais a essa consulta.
Sugestão: Criar consultas em passos é uma estratégia muito eficaz para responder a perguntas mais avançadas. Se estiver a ter dificuldades em fazer com que uma consulta complicada funcione, considere se a pode dividir numa série de consultas mais simples.
Criar uma consulta de totais
Este procedimento utiliza a tabela de exemplo Eventos e a tabela de exemplo EventType para responder a esta pergunta:
Quando foi o evento mais recente de cada tipo de evento, excluindo concertos?
-
No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.
-
Faça duplo clique nas tabelas Events e EventType. Cada tabela é apresentada na secção superior do estruturador de consultas.
-
Faça duplo clique no campo EventType da tabela EventType e no campo EventDate da tabela Eventos para adicionar os campos à grelha de estrutura da consulta.
-
Na grelha de estrutura da consulta, na linha Critérios do campo EventType , introduza <>Concerto.
Sugestão: Para obter mais exemplos de expressões de critérios, veja o artigo Exemplos de critérios de consulta.
-
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Totais.
-
Na grelha de estrutura da consulta, clique na linha Total do campo EventDate e, em seguida, clique em Máx.
-
No separador Estrutura, no grupo Resultados, clique em Vista e, em seguida, clique em Vista de SQL.
-
Na janela SQL, no final da cláusula SELECT, logo após a palavra-chave AS, substitua MaxOfEventDate por MostRecent.
-
Guarde a consulta como MostRecentEventByType.
Criar uma segunda consulta para adicionar mais dados
Este procedimento utiliza a consulta MostRecentEventByType do procedimento anterior para responder a esta pergunta:
Quem foi o cliente no evento mais recente de cada tipo de evento?
-
No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.
-
No separador Consultas , faça duplo clique na consulta MostRecentEventByType.
-
No separador Tabelas , faça duplo clique na tabela Eventos e na tabela Clientes.
-
No estruturador de consultas, faça duplo clique nos seguintes campos:
-
Na tabela Eventos, faça duplo clique em EventType.
-
Na consulta MostRecentEventByType, faça duplo clique em MostRecent.
-
Na tabela Clientes, faça duplo clique em Empresa.
-
-
Na grelha de estrutura da consulta, na linha Ordenar da coluna EventType , selecione Ascendente.
-
No separador Estrutura, no grupo Resultados, clique em Executar.