Para facilitar a leitura e compreensão dos dados de resumo no Access, é recomendável que utilize uma consulta cruzada. Uma consulta cruzada calcula a soma, a média ou outra função de agregação e, em seguida, agrupa os resultados através de dois conjuntos de valores - um ao lado da folha de dados e outro na parte superior. No friso, clique em Criar e, em seguida, no grupo Consultas, clique em Assistente de Consultas. Na caixa de diálogo Nova Consulta, faça duplo clique em Assistente de Consultas Cruzadas.
Se um conjunto de cabeçalhos contiver valores de data, o assistente irá ajudá-lo a agrupar os registos em intervalos padrão, tais como meses ou trimestres.
Neste artigo
Nota: As consultas cruzadas não estão disponíveis em aplicações Web do Access e apenas são parcialmente suportadas numa base de dados Web: não podem ser utilizadas por quaisquer objetos Web.
Descrição Geral
Uma consulta cruzada é um tipo de consulta Selecionar. Ao executar uma consulta cruzada, os resultados são apresentados numa folha de dados com uma estrutura diferente de outros tipos de folhas de dados.
A estrutura de uma consulta cruzada pode tornar a leitura mais fácil do que uma simples consulta selecionar com os mesmos dados, como mostra a seguinte ilustração.
1. Esta consulta selecionar agrupa os dados de resumo na vertical por empregado e categoria.
2. Uma consulta cruzada pode apresentar os mesmos dados, mas agrupa os dados horizontalmente e verticalmente para que a folha de dados fique mais compacta e fácil de ler.
Quando cria uma consulta cruzada, especifica que campos contêm cabeçalhos de linha, que campo contém cabeçalhos de coluna e que campo contém valores para resumir. Pode utilizar apenas um campo quando especifica cabeçalhos de coluna e valores para resumir. Pode utilizar até três campos quando especifica cabeçalhos de linha.
Também pode utilizar uma expressão para produzir cabeçalhos de linha, cabeçalhos de coluna ou valores para resumir. Consulte Funções de Agregação SQL para obter mais informações.
1. Uma, duas ou três colunas neste lado contêm cabeçalhos de linha. Os nomes dos campos que utiliza como cabeçalhos de linha aparecem na linha superior destas colunas.
2. Os cabeçalhos de linha são apresentados aqui. O número de linhas na folha de dados da consulta cruzada pode aumentar rapidamente quando utilizar mais de um campo de cabeçalho, uma vez que são apresentadas todas as combinações de cabeçalhos de linha.
3. As colunas neste lado contêm cabeçalhos de coluna e valores de resumo. Tenha em atenção que o nome do campo de cabeçalho de coluna não é apresentado na folha de dados.
4. Os valores de resumo são apresentados aqui.
Métodos para criar uma consulta cruzada
Utilizar o Assistente de Consultas Cruzadas O Assistente de Consultas Cruzadas é, normalmente, a forma mais rápida e fácil de criar uma consulta cruzada. Faz a maior parte do trabalho por si, mas existem algumas opções que não são fornecidas pelo assistente.
O assistente tem as seguintes vantagens:
-
É fácil de utilizar. Para utilizá-lo, basta iniciar o assistente e, em seguida, responder a uma série de perguntas orientadas.
-
Consegue agrupar automaticamente datas em intervalos. Se utilizar um campo com dados de Data/Hora para cabeçalhos de colunas, o assistente também o ajuda a agrupar as datas em intervalos, como meses ou trimestres.
Sugestão: Se quiser utilizar valores de um campo Data/Hora em cabeçalhos de coluna, mas quiser agrupar as datas em intervalos que o assistente não fornece, como o ano fiscal ou um período de dois anos, não utilize o assistente para criar a sua consulta. Em alternativa, crie uma consulta cruzada na vista Estrutura e utilize uma expressão para criar os intervalos.
-
Pode utilizá-lo como um ponto de partida. Pode utilizar o assistente para criar a consulta cruzada básica pretendida e, em seguida, otimizar a estrutura da consulta utilizando a vista Estrutura.
No entanto, ao utilizar o assistente, não pode:
-
Utilizar mais do que uma tabela ou consulta como uma origem de registos.
-
Utilizar uma expressão para criar campos.
-
Adicionar um pedido de parâmetro.
-
Especificar uma lista de valores fixos para utilizar como cabeçalhos de coluna.
No último passo do assistente, pode optar por modificar a consulta na vista Estrutura. Isto permite-lhe adicionar elementos de estrutura que o assistente não suporta à consulta, como origens de registos adicionais.
Trabalhar na vista Estrutura A vista Estrutura dá-lhe mais controlo sobre a estrutura da sua consulta. Suporta as funcionalidades que não estão disponíveis no assistente.
Pondere utilizar a vista Estrutura para criar a sua consulta cruzada se quiser:
-
Ter mais controlo ao longo do processo. O assistente toma algumas decisões por si.
-
Utilizar mais do que uma tabela ou consulta como uma origem de registos.
-
Adicionar um pedido de parâmetro à sua consulta.
-
Utilizar expressões como campos na consulta.
-
Especificar uma lista de valores fixos para utilizar como cabeçalhos de coluna.
-
Praticar com a grelha de estrutura.
Escrever uma consulta na vista SQL Se preferir, pode escrever uma consulta cruzada na vista de SQL. No entanto, não pode especificar tipos de dados de parâmetros com a vista de SQL. Se quiser utilizar um parâmetro na sua consulta cruzada, tem de especificar o tipo de dados do parâmetro ao modificar a sua consulta na vista Estrutura.
Sugestão: Tenha em atenção que não está limitado à utilização de apenas um método para criar uma consulta cruzada. Pode utilizar o assistente para criar a consulta e, em seguida, utilizar a vista Estrutura para modificar a estrutura da consulta.
Criar uma consulta cruzada com o Assistente de Consultas Cruzadas
Para utilizar o Assistente de Consultas Cruzadas é necessário utilizar uma única tabela ou consulta como a origem de registos para a consulta cruzada. Se uma única tabela não tiver todos os dados que pretende incluir na consulta cruzada, comece por criar uma consulta selecionar que devolva os dados pretendidos. Para obter mais informações sobre a criação de uma consulta selecionar, consulte a secção Consulte Também.
Para este exemplo, iremos criar uma consulta cruzada com a tabela Produtos da base de dados de exemplo da Northwind. Queremos apresentar uma contagem do número de produtos em cada categoria de todos os fornecedores.
-
No separador Criar, no grupo Consultas, clique em Assistente de Consultas.
-
Na caixa de diálogo Nova Consulta, clique em Assistente de Consultas Cruzadas e, em seguida, clique em OK.
É iniciado o Assistente de Consultas Cruzadas.
-
Na primeira página do assistente, escolha a tabela ou consulta que pretende utilizar para criar uma consulta cruzada. Para este exemplo, selecione a tabela Produtos e, em seguida, clique em Seguinte.
-
Na página seguinte, escolha o campo que contém os valores que pretende utilizar como cabeçalhos de coluna. Pode selecionar até três campos para utilizar como origens de cabeçalhos de linha, mas quanto menos cabeçalhos de linha utilizar, mais fácil será de ler a folha de dados da consulta cruzada. Se escolher mais de um campo para fornecer cabeçalhos de linha, a ordem pela qual escolhe os campos determina a ordem predefinida na qual os resultados são ordenados.
Para este exemplo, selecione IDs de Fornecedor.Valor e, em seguida, clique no botão marcado com um símbolo >. Repare que o Access apresenta o nome do campo no lado esquerdo da pré-visualização da consulta de exemplo, na parte inferior da caixa de diálogo. Clique em Seguinte para continuar.
-
Na página seguinte, selecione o campo que contém os valores que pretende utilizar como cabeçalhos de coluna. Em geral, deve selecionar um campo que contenha poucos valores para ajudar a manter os resultados fáceis de ler. Por exemplo, a utilização de um campo que apenas tenha alguns valores possíveis (como o género) poderá ser preferível à utilização de um campo que possa conter vários valores diferentes (como a idade).
Se o campo que escolher utilizar para cabeçalhos de coluna tiver o tipo de dados Data/hora, o assistente adiciona um passo que permite especificar como agrupar as datas em intervalos, tais como meses ou trimestres.
Para este exemplo, selecione Categoria e repare que o Access apresenta os nomes de exemplo das categorias na parte superior da pré-visualização da consulta de exemplo que está na parte inferior da caixa de diálogo. Clique em Seguinte para continuar.
-
Se escolher um campo Data/Hora para cabeçalhos de coluna, a página seguinte do assistente pede-lhe que especifique o intervalo a utilizar para agrupar as datas. Pode especificar Ano, Trimestre, Mês, Data ou Data/Hora. Se não escolher um campo Data/Hora para cabeçalhos de coluna, o assistente ignora esta página.
-
Na página seguinte, selecione um campo e uma função a utilizar para calcular valores de resumo. O tipo de dados do campo que selecionar determina as funções que estão disponíveis.
Na mesma página, selecione ou desmarque a caixa de verificação Sim, incluir as somas das linhas para incluir ou excluir as somas das linhas.
Se incluir as somas das linhas, a consulta cruzada tem um cabeçalho de linha adicional que utiliza o mesmo campo e a mesma função do valor do campo. Ao incluir uma soma das linhas, é inserida uma coluna adicional que resume as colunas restantes. Por exemplo, se a consulta cruzada calcular a idade média por localização e sexo (com cabeçalhos de coluna para o sexo), a coluna adicional calcula a idade média por localização, em todos os sexos.
Para este exemplo, selecione ID na caixa Campos e Contagem na caixa Funções para que o Access faça a contagem do número de produtos em cada interseção de fornecedores e categorias. Mantenha a caixa de verificação Sim, incluir as somas das linhas selecionada. O Access irá criar uma coluna que soma o número de produtos de cada fornecedor. Clique em Seguinte para continuar.
-
Na última página do assistente, escreva um nome para a consulta e, em seguida, especifique se quer ver os resultados ou modificar a estrutura da consulta.
Pode alterar a função que é utilizada para produzir as somas das linhas editando a consulta cruzada na vista Estrutura.
-
Se tiver utilizado a tabela Produtos da base de dados da Northwind neste exemplo, a consulta cruzada apresentará uma lista de nomes de fornecedores como linhas, os nomes das categorias de produtos como colunas e uma contagem do número de produtos em cada interseção.
Ao utilizar a vista Estrutura para criar a sua consulta cruzada, pode utilizar todas as origens de registos (tabelas e consultas) que pretender. No entanto, pode manter a estrutura simples ao criar primeiro uma consulta selecionar que devolve todos os dados pretendidos e, em seguida, utilizar essa consulta como a única origem de registos da sua consulta cruzada. Para obter mais informações sobre a criação de uma consulta selecionar, consulte a secção Consulte Também.
Quando cria uma consulta cruzada na vista Estrutura, utilize as linhas Total e Cruzada na grelha de estrutura para especificar que valores de campo irão tornar-se cabeçalhos de coluna, que valores de campo irão tornar-se cabeçalhos de linha e quais os valores de campo a somar, a calcular a média, a contar ou a calcular de outra forma.
1. As definições nestas linhas determinam se o campo é um cabeçalho de linha, cabeçalho de coluna ou valor de resumo.
2. Esta definição apresenta os valores de campo como cabeçalhos de linha.
3. Esta definição apresenta os valores de campo como cabeçalhos de coluna.
4. Estas definições produzem os valores de resumo.
Criar a consulta
-
No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.
-
Na caixa de diálogo Mostrar Tabela, faça duplo clique em cada tabela ou consulta que pretende utilizar como origem de registos.
Se utilizar mais do que uma origem de registos, certifique-se de que as tabelas ou consultas estão associadas aos campos que têm em comum. Para obter mais informações sobre a associação de tabelas e consultas, consulte a secção Consulte Também.
-
Feche a caixa de diálogo Mostrar Tabela.
-
No separador Estrutura, no grupo Tipo de Consulta, clique em Cruzada.
-
Na janela de estrutura da consulta, faça duplo clique em cada campo que pretender utilizar como origem de cabeçalhos de linha. Pode selecionar até três campos para cabeçalhos de linha.
-
Na grelha de estrutura da consulta, na linha Cruzada de cada campo de cabeçalho de linha, selecione Cabeçalho da Linha.
Pode introduzir uma expressão na linha Critérios para limitar os resultados para esse campo. Também pode utilizar a linha Ordenar para especificar uma sequência de ordenação para um campo.
-
Na janela de estrutura da consulta, faça duplo clique no campo que pretende utilizar como a origem dos cabeçalhos de coluna. Só pode selecionar um campo para cabeçalhos de coluna.
-
Na grelha de estrutura da consulta, na linha Cruzada para o campo de cabeçalho de coluna, selecione Cabeçalho da Coluna.
Pode introduzir uma expressão na linha Critérios para limitar os resultados para o campo de cabeçalho de coluna. Contudo, a utilização de uma expressão de critérios com o campo de cabeçalho de coluna não limita o número de colunas devolvidas pela consulta cruzada. Em vez disso, limita as colunas que contêm dados. Por exemplo, suponha que tem um campo de cabeçalho de coluna com três valores possíveis: vermelho, verde e azul. Se aplicar o critério='azul' ao campo de cabeçalho de coluna, a consulta cruzada continua a apresentar uma coluna para vermelho e uma coluna para verde, mas apenas a coluna para azul contém dados.
Se quiser limitar os valores que são apresentados como cabeçalhos de coluna, pode especificar uma lista de valores fixos com a propriedade Cabeçalhos de Coluna da consulta. Para obter mais informações, consulte a secção seguinte.
-
Na janela de estrutura da consulta, faça duplo clique no campo que pretende utilizar para calcular valores de resumo. Só pode selecionar um campo a utilizar para os valores de resumo.
-
Na grelha de estrutura da consulta, na linha Total para o campo de valores de resumo, selecione uma função de agregação a utilizar para calcular os valores.
-
Na linha Cruzada para o campo de valores de resumo, selecione Valor.
Não pode especificar critérios para ordenar num campo de valores de resumo.
-
No separador Estrutura, no grupo Resultados, clique em Executar.
Especificar valores fixos para cabeçalhos de coluna
Se pretender especificar valores fixos para utilizar cabeçalhos de coluna, pode definir a propriedade Cabeçalhos de Coluna da consulta.
-
Abra a consulta cruzada na vista Estrutura.
-
Se a folha de propriedades não estiver visível, prima F4 para a apresentar.
-
Na folha de propriedades, mesmo por cima do separador Geral, certifique-se de que o Tipo de seleção é Propriedades da Consulta. Se não for, clique num ponto vazio no espaço acima da grelha de estrutura da consulta.
-
Na folha de propriedades, no separador Geral, na propriedade Cabeçalhos de Coluna, introduza uma lista de valores separados por vírgulas que pretende utilizar como cabeçalhos de coluna.
Alguns carateres (tal como a maioria dos sinais de pontuação) não são permitidos nos cabeçalhos de coluna. Se utilizar estes carateres na lista de valores, o Access substitui um caráter de sublinhado (_) por cada um desses carateres.
Sintaxe SQL para uma consulta cruzada
Uma consulta cruzada é expressa em SQL como uma instrução TRANSFORM. Uma instrução TRANSFORM tem a seguinte sintaxe:
Transform aggfunction
selectstatement Campo dinâmico DINÂMICO [IN (valor1[, valor2[, ...]])]A instrução TRANSFORM tem as seguintes partes:
Parte |
Descrição |
funçãodeagregação |
Uma função de agregação SQL que funciona nos dados selecionados. |
instruçãoselect |
Uma instrução SELECT. |
campodinâmico |
O campo ou a expressão que pretende utilizar para criar cabeçalhos de coluna no conjunto de resultados da consulta. |
valor1, valor2 |
Os valores fixos utilizados para criar os cabeçalhos de coluna. |
A vista de SQL não limita o número de tabelas ou consultas que pode utilizar como origens de registos para uma consulta cruzada. No entanto, pode ajudar a manter a estrutura simples ao criar primeiro uma consulta selecionar que devolve todos os dados que pretende utilizar na sua consulta cruzada e, em seguida, utilizar essa consulta selecionar como a origem de registos. Para obter mais informações sobre a criação de uma consulta selecionar, consulte a secção Consulte Também.
-
No separador Criar, no grupo Outro, clique em Estrutura da Consulta.
-
Feche a caixa de diálogo Mostrar Tabela.
-
No separador Estrutura, no grupo Vistas, clique em Ver e, em seguida, clique em Vista de SQL.
-
No separador objeto SQL, escreva ou cole o seguinte SQL:
TRANSFORM SELECT FROM GROUP BY PIVOT ;
-
Na primeira linha, depois de TRANSFORM, escreva uma expressão a utilizar para calcular valores de resumo. Por exemplo: Sum([Montante]).
Se estiver a utilizar mais do que uma tabela ou consulta como origem de registos, inclua o nome da tabela ou consulta como parte do nome de cada campo. Por exemplo: Sum([Despesa].[Montante]).
-
Na segunda linha, depois de SELECIONAR, escreva uma lista de campos ou expressões de campo que pretende utilizar para cabeçalhos de linha. Separe os itens de lista utilizando vírgulas; por exemplo, [Orçamento].[Dept_ID], [Despesa]. [Tipo].
-
Na terceira linha, depois de FROM, escreva uma lista de tabelas e consultas que está a utilizar como origens de registos. Por exemplo: Orçamento, Despesa.
-
Na quarta linha, depois de GROUP BY, escreva a mesma lista de campos que utilizou na cláusula SELECT, no passo 6.
-
Na quinta linha, depois de PIVOT, escreva o nome de um campo ou expressão que pretende utilizar para cabeçalhos de coluna. Por exemplo: PIVOT [Orçamento].[Ano].
Para adicionar uma sequência de ordenação a uma consulta cruzada na vista de SQL, utilize uma cláusula ORDER BY.
-
Insira uma linha entre a cláusula GROUP BY e a cláusula PIVOT.
-
Na nova linha, escreva ORDER BY seguido de espaço.
-
Escreva o nome do campo ou expressão que pretende ordenar. Por exemplo: ORDER BY [Despesa].[Despesa_Classe]
Por predefinição, uma cláusula ORDER BY ordena os valores por ordem ascendente. Se quiser ordenar por ordem descendente, escreva DESC após o nome do campo ou expressão.
-
Se quiser ordenar um campo ou expressão adicional, escreva uma vírgula e, em seguida, escreva o nome do campo ou expressão adicional. A ordenação ocorrerá pela ordem em que os campos ou expressões aparecerem na cláusula ORDER BY.
-
No final da cláusula PIVOT na vista de SQL da sua consulta cruzada, escreva IN, seguido de uma lista de valores separados por vírgulas (entre parênteses) a utilizar como cabeçalhos de colunas. Por exemplo: IN (2007, 2008, 2009, 2010) produz quatro cabeçalhos de colunas: 2007, 2008, 2009, 2010.
Se especificar um valor fixo que não corresponda a um valor de campo do campo PIVOT, esse valor fixo torna-se um cabeçalho de uma coluna vazia.
-
Insira uma nova linha depois da cláusula FROM na vista de SQL da sua consulta cruzada.
-
Escreva WHERE seguido de um critério de campo.
Se quiser utilizar critérios adicionais, pode utilizar os operadores E e OU para prolongar a sua cláusula WHERE. Também pode utilizar parênteses para agrupar critérios em conjuntos lógicos.
Por vezes, em vez de utilizar todos os valores de um campo em cabeçalhos de coluna ou linha, poderá querer agrupar os valores de um campo em intervalos e, em seguida, utilizar esses intervalos para cabeçalhos de linha ou coluna. Por exemplo, suponhamos que utiliza um campo "Idade" para cabeçalhos de coluna. Em vez de utilizar uma coluna para cada idade, poderá preferir utilizar colunas que representem intervalos de idade.
Pode utilizar a Função ISe numa expressão para criar intervalos a utilizar em cabeçalhos de linha e coluna.
Sugestão: Se pretender criar intervalos com um campo Data/Hora, considere utilizar o Assistente de Consultas Cruzadas. O assistente permite agrupar datas em intervalos de Ano, Trimestre, Mês, Data ou Data/Hora. Se nenhum destes intervalos corresponder ao pretendido, deve criar a consulta cruzada na vista Estrutura e, em seguida, utilizar a técnica descrita nesta secção para criar os intervalos pretendidos.
-
Abra a consulta cruzada na vista Estrutura.
-
Na grelha de estrutura da consulta, na linha Campo, clique com o botão direito do rato numa coluna vazia e, em seguida, clique em Zoom no menu de atalho.
-
Na caixa Zoom, escreva um alias de campo, seguido de dois pontos (:).
-
Escreva ISe().
-
Dentro dos parâmetros a seguir a ISe, escreva uma expressão de comparação que defina o primeiro intervalo de valores de campo.
Por exemplo, suponha que está a criar intervalos para um campo Idade e pretende que cada intervalo seja de vinte anos. A expressão de comparação para o primeiro intervalo é [Idade]<21.
-
Escreva uma vírgula a seguir à expressão de comparação e, em seguida, escreva um nome para o intervalo, entre aspas. O nome fornecido é o cabeçalho da consulta cruzada para valores que se inserem no intervalo.
Por exemplo, a seguir a [Idade]<21, escreva uma vírgula e, em seguida, escreva "0 a 20 anos".
-
Escreva uma vírgula a seguir ao nome do intervalo (fora das aspas) e, em seguida, siga um dos seguintes procedimentos:
-
Para criar outro intervalo, escreva ISe() e, em seguida, repita os passos 5, 6 e 7.
-
Para o último intervalo, escreva apenas um nome para o intervalo.
Por exemplo, uma expressão ISe totalmente aninhada que separa um campo Idade em intervalos de vinte anos poderá ter o seguinte aspeto (foram adicionadas quebras de linha por motivos de legibilidade):
IIf([Age]<21,"0-20 years", IIf([Age]<41,"21-40 years", IIf([Age]<61,"41-60 years", IIf([Age]<81,"61-80 years", "80+ years"))))
Nota: Quando o Access avalia a expressão, deixa de avaliar assim que uma das instruções ISe for avaliada como verdadeira. Não é necessário especificar o limite inferior de cada intervalo, uma vez que qualquer valor que seja inferior ao limite inferior de um determinado intervalo já terá sido avaliado como verdadeiro.
-
-
Na grelha de estrutura da consulta, na linha Total, selecione Agrupar Por.
-
Na linha Cruzada, especifique se pretende utilizar os intervalos como cabeçalhos de linha ou cabeçalhos de coluna. Lembre-se que pode especificar entre um a três cabeçalhos de linha e um cabeçalho de coluna.
Poderá pretender que a consulta cruzada solicite dados quando for executada. Por exemplo, suponha que está a utilizar vários cabeçalhos de linha, um dos quais é País/Região. Em vez de apresentar sempre dados para cada país ou região, poderá pretender que a consulta solicite um nome e, em seguida, apresente os dados de acordo com os dados introduzidos pelo utilizador.
Pode adicionar um pedido de parâmetro a qualquer campo de cabeçalho de linha.
Nota: Também pode adicionar um pedido de parâmetro a um campo de cabeçalho de coluna, mas isto não irá limitar as colunas apresentadas.
-
Abra a consulta cruzada na vista Estrutura.
-
Na linha Critérios para o campo de cabeçalho de linha para o qual pretende pedir introdução de dados ao utilizador, escreva o texto da pergunta entre parênteses retos. O texto da pergunta irá aparecer como um pedido quando a consulta for executada.
Por exemplo, se escrever [Que país ou região?] na linha Critérios, quando a consulta for executada, é apresentada uma caixa de diálogo com a pergunta "Que país ou região?," uma caixa de introdução e um botão OK.
Sugestão: Se quiser que o parâmetro seja flexível, efetue a concatenação da expressão com carateres universais, ao utilizar o operador Como. Por exemplo, em vez de utilizar [Que país ou região?] como critério, pode utilizar Como [Que país ou região?]&"*" para fazer com que o parâmetro corresponda a um intervalo de dados mais vasto. A utilização de Como não altera o aspeto do pedido de parâmetro.
-
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Parâmetros.
-
Na caixa de diálogo Parâmetros da Consulta, na coluna Parâmetros, introduza o mesmo pedido de parâmetro utilizado na linha Critérios. Inclua os parênteses retos, mas não inclua quaisquer carateres universais concatenados nem o operador Como.
-
Na coluna Tipo de Dados, selecione o tipo de dados para o parâmetro. O tipo de dados deve corresponder ao tipo de dados do campo de cabeçalho de linha.
Se o campo que pretender utilizar para calcular valores de resumo na consulta cruzada contiver valores nulos, esses valores são ignorados por qualquer função de agregação que utilizar. Para algumas funções de agregação, os resultados podem ser afetados. Por exemplo, para calcular uma média, adicione todos os valores e divida o resultado pelo número de valores. Mas se o campo contiver quaisquer valores nulos, esses valores nulos não contam como parte do número de valores.
Em alguns casos, poderá preferir substituir quaisquer valores nulos por zeros, de modo a que os valores sejam contados durante os cálculos de agregação. Pode utilizar a função Nz para substituir valores nulos por zeros.
Sintaxe de Nz
Nz ( variante [, valorsenulo ] )
A sintaxe da função Nz tem os seguintes argumentos:
Argumento |
Descrição |
variante |
Obrigatório. Uma variável do tipo de dados Variante. |
valorsenulo |
Opcional (a menos que seja utilizado numa consulta). Uma Variante que fornece um valor a ser devolvido se o argumento da variante for Nulo. Este argumento permite-lhe devolver um valor diferente de zero ou uma cadeia de comprimento zero. Nota: Se utilizar a função Nz numa expressão de uma consulta sem utilizar o argumento valorsenulo, os resultados serão uma cadeia de comprimento zero nos campos que contêm valores nulos. |
-
Com a consulta aberta na vista Estrutura, na grelha de estrutura da consulta, clique com o botão direito do rato no campo Valor.
-
No menu de atalho, clique em Zoom.
-
Na caixa Zoom, coloque a expressão ou o nome do campo entre parênteses e, em seguida, escreva Nz à frente dos parênteses.
-
Escreva , 0 dentro do parêntese direito.
Por exemplo, se tiver utilizado Nz com um campo denominado "Horas Perdidas" para transformar valores nulos em zeros, a expressão concluída terá o seguinte aspeto:
Nz([Hours Lost], 0)
-
Mantenha-a simples As consultas cruzadas podem tornar-se difíceis de ler à medida que o número de combinações de linha for aumentando. Não utilize mais cabeçalhos de linha do que os necessários.
-
Considere criar a consulta cruzada por passos Não se limite a utilizar apenas tabelas. Pode começar, muitas vezes, por criar uma consulta de totais e, em seguida, utilizar essa consulta como a origem de registos para uma consulta cruzada.
-
Escolha cuidadosamente o campo de cabeçalho da coluna As folhas de dados cruzadas tendem a ser mais fáceis de ler quando o número de cabeçalhos de coluna permanece relativamente pequeno. Depois de identificar os campos que pretende utilizar como cabeçalhos, considere utilizar o campo com menos valores distintos para produzir cabeçalhos de coluna. Por exemplo, se a sua consulta calcular um valor por idade e género, considere utilizar o sexo para cabeçalhos de coluna em vez de idade, porque o sexo normalmente tem menos valores possíveis do que a idade.
-
Utilizar uma subconsulta numa cláusula WHERE Pode utilizar uma subconsulta como parte de uma cláusula WHERE numa consulta cruzada.