DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 304458 - Última revisão: quarta-feira, 17 de setembro de 2003 - Revisão: 3.1

Moderado: Requer conhecimentos básicos de macro, codificação e interoperabilidade.

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Para obter uma versão deste artigo do Microsoft Access 2000, consulte 209143  (http://support.microsoft.com/kb/209143/PT-BR/ ) .

Sumário

Em uma consulta de tabela de referência cruzada, você pode especificar apenas um campo ou cálculo como o valor. Talvez você queira visualizar mais de um valor na consulta.

O exemplo a seguir mostra duas colunas de informações por empresa, um levantamento do número de pedidos e o total de pedidos em cada ano:
   Nome da Empresa  Pedidos (1998)  Total (1998) Pedidos (1999) Total (1999)
   --------------------------------------------------------------
   ABC Company   12           $855,00     15           $1010,25
   XYZ Company   1017         $22045,57   1050         $25345,29
				
Esse tipo de consulta às vezes é chamado de consulta com vários campos Valor.

Mais Informações

Para criar uma consulta de tabela de referência cruzada com vários campos Valor, você deve criar uma consulta de tabela de referência cruzada para cada valor que você deseja calcular. Assim, você pode usar uma consulta de seleção para acessar essas consultas de tabela de referência cruzada e exibir os resultados desejados.

O seguinte exemplo usa o banco de dados de exemplo Northwind.mdb para criar uma consulta que exibe resultados similares ao exemplo mostrado na seção "Sumário" deste artigo. Ele mostra o número de vendas e o total referente a cada ano de cada empresa.
  1. Abra o banco de dados de exemplo Northwind.mdb, e crie a seguinte consulta de tabela de referência cruzada com base nas tabelas Pedidos, Detalhes do pedido e Clientes:
       Query: Order Total
       ------------------
       Type: Crosstab Query
       Join: Customers.[CustomerID] <-> Orders.[CustomerID]
       Join: Orders.[OrderID] <-> Order Details.[OrderID]
    
       Field: CompanyName
          Table Name: Customers
          Total: Group By
          Crosstab: Row Heading
    
       Field: Expr1: Year([OrderDate]) & " " & "Order Total"
          Table Name:
          Total: Group By
          Crosstab: Column Heading
    
      Field: Expr2: Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])))
          Table Name:
          Total: Expression
          Crosstab: Value
    					
  2. Salve essa consulta como Order Total.
  3. Crie a seguinte consulta de tabela de referência cruzada com base nas tabelas Pedidos e Clientes:
       Query: Order Count
       ------------------
       Type: Crosstab Query
       Join: Customers.[CustomerID] <-> Orders.[CustomerID]
    
       Field: CompanyName
          Table Name: Customers
          Total:      Group By
          Crosstab:   Row Heading
    
       Field: Expr1: Year([OrderDate]) & " " & "Order Count"
          Table Name:
          Total: Group By
          Crosstab: Column Heading
    
    
       Field: OrderID
          Table Name: Orders
          Total:      Count
          Crosstab:   Value
    					
  4. Salve essa consulta como Order Count.
  5. Crie uma consulta com base nas consultas de tabela de referência cruzada Order Total e Order Count. Use os campos CompanyName, Order Total e Order Count para os anos cujos resultados você deseja ver. O seguinte exemplo usa os últimos dois anos de Order Total e Order Count no Microsoft Access.
       Query: Multiple Values
       ----------------------
       Join: Order Total.[CompanyName] <-> Order Count.[CompanyName]
    
       Field: CompanyName
          Table Name: Order Count
    
       Field: 1997 Order Count
          Table Name: Order Count
    
       Field: 1997 Order Total
          Table Name: Order Total
    
       Field: 1998 Order Count
          Table Name: Order Count
    
       Field: 1998 Order Total
          Table Name: Order Total
    					
  6. Ao executar a consulta com vários valores, você verá uma tabela semelhante à seguinte:
                             1997 Order  1997 Order  1998 Order  1998 Order
       Company Name            Count       Total       Count       Total
       --------------------------------------------------------------------
       Alfred's Futterkiste        3      $2.022,50        3      $2.022,50
       Ana Trujillo                2        $799,75        1        $514,10
       Antonio Moreno              5      $5.960,78        1        $660,00
    					
    NOTA: Você deve adicionar o nome da tabela à expressão no caso do campo especificado para a concatenação ser um campo em mais de uma tabela associada à consulta. Por exemplo, no passo 1, você alteraria:
       Year([OrderDate]) & " " & "Order Total"
    					
    para:
       Year([Orders].[OrderDate]) & " " & "Order Total"
    					
    Se adicionar o nome da tabela à linha Table, você gera um erro de sintaxe. Se deixar o nome da tabela fora, você gera um erro de referência ambígua.

Referências

Para obter mais informações sobre as consultas de tabela de referência cruzada, clique em Ajuda do Microsoft Access no menu Ajuda, digite crosstab queries no Assistente do Office ou no Assistente de resposta, e clique em Procurar para visualizar os tópicos retornados.

A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbhowto KB304458
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store