Uma consulta que agrupe dados de duas tabelas relacionadas pode exibir registros em que todos os campos pareçam ser idênticos. Entretanto, ao examinar as tabelas, talvez você constate que na verdade elas não contêm registros duplicados. Esse problema ocorre quando a consulta não inclui certos campos, como as chaves primárias, que poderiam identificar cada registro de maneira exclusiva. Nessas situações, embora não queira excluir os registros, você pode ocultar aqueles que pareçam ser duplicatas.
Por exemplo, digamos que você use uma consulta que coleta dados de clientes em duas tabelas para verificar se seus funcionários estão atendendo aos pedidos rapidamente. Como seus clientes podem comprar vários produtos, cada produto torna-se um registro separado (uma linha) nas tabelas de base. Como cada pedido é feito em um único dia e depois atendido em um único dia, os registros de um determinado pedido podem conter uma grande quantidade de datas duplicadas, como neste exemplo:
Sabendo que os pedidos são recebidos em um determinado dia e são atendidos em um determinado dia, você só precisa ver um registro (uma linha) por pedido. Para exibir registros exclusivos das tabelas que contêm os dados sobre pedidos, você pode definir a propriedade Registros Exclusivos da consulta como Sim. Quando essa propriedade for definida como Sim, a consulta pesquisará todas as linhas das tabelas e, sempre que encontrar linhas (e não apenas campos) correspondentes, excluirá todas as linhas duplicadas, exceto uma, do conjunto de resultados.
Definir a propriedade Valores Exclusivos como Sim
1. Com a consulta aberta no modo Design, pressione F4 para exibir a folha de propriedades.
2. Na folha de propriedades, defina a propriedade Registros Exclusivos como Sim e feche a folha de propriedades.
Antes de prosseguir, lembre-se de que quando a propriedade Registros Exclusivos for definida como Sim, a consulta comparará linhas inteiras e só excluirá dados quando houver uma correspondência entre as linhas de todas as tabelas envolvidas. Além disso, só é possível configurar a propriedade Registros Exclusivos quando a consulta incluir duas ou mais tabelas.
Ao alternar para o modo Folha de Dados, você só verá um registro de cada pedido.
Lembre-se também de que, mesmo depois de definir a propriedade Registros Exclusivos como Sim e executar a consulta, você ainda poderá ver registros que parecem ser duplicados. Continuando com o exemplo anterior, talvez você encontre registros em que há correspondência tanto na data do pedido como na data do envio, como estes:
Isso acontece quando dois pedidos diferentes são recebidos no mesmo dia e enviados no mesmo dia. Definir a propriedade Registros Exclusivos como Sim não oculta esses registros dos resultados da consulta, pois os registros não estão efetivamente duplicados nas tabelas de base.
Se quiser ver somente uma instância desses registros (ou seja, um registro de pedido por dia), você terá que definir a propriedade Valores Exclusivos da consulta como Sim. Quando a propriedade Valores Exclusivos for definida como Sim, a consulta não tentará localizar duplicatas nas tabelas de base. Em vez disso, ela examinará os valores dos campos incluídos e, quando houver uma correspondência entre todos os campos de dois registros, ocultará um desses registros no modo de exibição.
A propriedade Valores Exclusivos é definida exatamente da mesma maneira que a propriedade Registros Exclusivos — exibindo a folha de propriedades da consulta e alterando a definição para Sim. Na folha de propriedades, a caixa de propriedade Valores Exclusivos está acima da caixa de propriedade Registros Exclusivos.
Continuando com o exemplo anterior, agora você só vê as datas em que um ou mais pedidos foram recebidos ou enviados. Você não vê mais um registro por pedido.
OBSERVAÇÃO Como a definição da propriedade Registros Exclusivos comoSim opera sobre as linhas das tabelas que fornecem dados para a consulta e a definição da propriedade Valores Exclusivos como Sim opera sobre os campos da consulta, não é possível usar ambas as propriedades ao mesmo tempo. Quando você definir uma delas como Sim, o Access automaticamente definirá a outra como Não. Entretanto, ambas podem ser definidas como Não para retornar todos os registros.
A tabela a seguir fornece um resumo para ajudar você a escolher as definições das propriedades Registros Exclusivos e Valores Exclusivos em uma consulta.
VER UM REGISTRO ESPECÍFICO OU RESUMIR DADOS DUPLICADOS EM TABELAS RELACIONADAS
Durante a exibição de dados duplicados em tabelas relacionadas, talvez você queira ver um registro específico do conjunto de duplicatas ou queira resumir os dados duplicados usando Contar, Soma ou outra função agregada.
Assim como no cenário descrito na seção anterior, talvez não haja realmente dados duplicados nas tabelas, mas quando são exibidos os dados de duas tabelas que compartilham uma relação um-para-muitos, como a que existe entre as tabelas Pedidos e Detalhes dos Pedidos, podem surgir muitos registros em que há uma correspondência entre vários campos. Por exemplo, um funcionário pode ter recebido vários pedidos do mesmo cliente, ou pode ter vendido o mesmo produto como parte de diferentes pedidos no mesmo dia, e assim por diante. Para responder a perguntas como as que são listadas abaixo, você terá que resumir os dados em vez de excluir dados duplicados.
· Determinar a quantidade total de cada produto vendida por cada funcionário.
· Contar o número total de pedidos de cada cliente que cada funcionário atendeu.
· Localizar o maior pedido do dia para cada funcionário.
· Lembre-se de adicionar a segunda tabela quando a primeira tabela for adicionada na caixa de diálogo Mostra Tabela.
· Ao adicionar os campos que determinam a duplicação, arraste os campos desejados de ambas as tabelas e, nas colunas de todos os campos, defina o valor da linha Total como Agrupar Por.
· O campo que identifica o registro que você deseja ver ou que contém os valores que você quer resumir pode ser proveniente de qualquer das duas tabelas.
Por exemplo, digamos que você use uma consulta que coleta dados de clientes em duas tabelas para verificar se seus funcionários estão atendendo aos pedidos rapidamente. Como seus clientes podem comprar vários produtos, cada produto torna-se um registro separado (uma linha) nas tabelas de base. Como cada pedido é feito em um único dia e depois atendido em um único dia, os registros de um determinado pedido podem conter uma grande quantidade de datas duplicadas, como neste exemplo:
Registro e Dados |
Definir a propriedade Valores Exclusivos como Sim
1. Com a consulta aberta no modo Design, pressione F4 para exibir a folha de propriedades.
2. Na folha de propriedades, defina a propriedade Registros Exclusivos como Sim e feche a folha de propriedades.
Propriedades e Valores |
Ao alternar para o modo Folha de Dados, você só verá um registro de cada pedido.
Consulta |
Registro Exclusivos |
Se quiser ver somente uma instância desses registros (ou seja, um registro de pedido por dia), você terá que definir a propriedade Valores Exclusivos da consulta como Sim. Quando a propriedade Valores Exclusivos for definida como Sim, a consulta não tentará localizar duplicatas nas tabelas de base. Em vez disso, ela examinará os valores dos campos incluídos e, quando houver uma correspondência entre todos os campos de dois registros, ocultará um desses registros no modo de exibição.
A propriedade Valores Exclusivos é definida exatamente da mesma maneira que a propriedade Registros Exclusivos — exibindo a folha de propriedades da consulta e alterando a definição para Sim. Na folha de propriedades, a caixa de propriedade Valores Exclusivos está acima da caixa de propriedade Registros Exclusivos.
Folha de Propriedades |
Datas e Pedidos |
A tabela a seguir fornece um resumo para ajudar você a escolher as definições das propriedades Registros Exclusivos e Valores Exclusivos em uma consulta.
SE A SUA CONSULTA FOR BASEADA EM...
|
E VOCÊ QUISER VER...
|
DEFINA...
|
RESULTADO...
|
Duas ou mais
tabelas, mas todos os campos da consulta vêm de uma única tabela
|
Registros
distintos da tabela (todos os campos da tabela devem corresponder para que
dois registros sejam classificados como duplicatas)
|
Registros
Exclusivoscomo Sim. (O Access definirá automaticamenteValores
Exclusivoscomo Não).
|
Se a tabela
contiver registros duplicados, a consulta os ignorará. Mesmo assim, os
resultados da consulta podem conter registros em que todos os campos são
correspondentes caso a consulta não inclua um campo que identifique esses
registros de maneira exclusiva.
|
Uma ou mais
tabelas
|
Registros
distintos no modo Folha de Dados da consulta (todos os campos no modo Folha
de Dados devem corresponder para que dois registros sejam classificados como
duplicatas)
|
Valores
Exclusivoscomo Sim. (O Access definirá automaticamenteRegistros
Exclusivoscomo Não).
|
A consulta
excluirá os registros duplicados (com correspondência em todos os campos) no
modo Folha de Dados. Entretanto, lembre-se de que talvez você não veja todos
os registros distintos da tabela de base.
|
Uma ou mais
tabelas
|
Todos os
registros
|
Valores
Exclusivoscomo Não eRegistros Exclusivoscomo Não.
|
Você verá todos
os registros, exclusivos ou duplicados, de ambas as tabelas.
|
Durante a exibição de dados duplicados em tabelas relacionadas, talvez você queira ver um registro específico do conjunto de duplicatas ou queira resumir os dados duplicados usando Contar, Soma ou outra função agregada.
Assim como no cenário descrito na seção anterior, talvez não haja realmente dados duplicados nas tabelas, mas quando são exibidos os dados de duas tabelas que compartilham uma relação um-para-muitos, como a que existe entre as tabelas Pedidos e Detalhes dos Pedidos, podem surgir muitos registros em que há uma correspondência entre vários campos. Por exemplo, um funcionário pode ter recebido vários pedidos do mesmo cliente, ou pode ter vendido o mesmo produto como parte de diferentes pedidos no mesmo dia, e assim por diante. Para responder a perguntas como as que são listadas abaixo, você terá que resumir os dados em vez de excluir dados duplicados.
· Determinar a quantidade total de cada produto vendida por cada funcionário.
· Contar o número total de pedidos de cada cliente que cada funcionário atendeu.
· Localizar o maior pedido do dia para cada funcionário.
· Lembre-se de adicionar a segunda tabela quando a primeira tabela for adicionada na caixa de diálogo Mostra Tabela.
· Ao adicionar os campos que determinam a duplicação, arraste os campos desejados de ambas as tabelas e, nas colunas de todos os campos, defina o valor da linha Total como Agrupar Por.
· O campo que identifica o registro que você deseja ver ou que contém os valores que você quer resumir pode ser proveniente de qualquer das duas tabelas.
Comentários