ACC2000:使用多值字段创建交叉表查询

文章翻译 文章翻译
文章编号: 209143 - 查看本文应用于的产品
本文的发布号曾为 CHS209143
展开全部 | 关闭全部

概要

初学者:要求具备单用户计算机的用户界面知识。

在 Microsoft Access 交叉表查询中,您可以只指定一个字段或算式作为查询值。但往往您会需要在查询中显示多个值。

例如,下例显示了两列公司信息,包括定单数目统计和每年的定单额总计:
   公司名称   1998 年定单数  1998 年总计   1999 年定单数  1999 年总计
   -------------------------------------------------------------------
   ABC 公司   12             $855.00       15             $1010.25
   XYZ 公司   1017           $22045.57     1050           $25345.29
这种查询类型有时称为“多值字段”查询。

备注:可以在示例文件中 Qrysmp00.exe 找到本文所使用的技术文档。有关如何获取示例文件的详细信息,请查看下列 Microsoft Knowledge Base 文章。
207626 ACC2000:下载中心已提供的 Access 2000 示例查询

更多信息

要创建一个多值字段交叉表查询,您必须为每个要计算的值分别创建一个交叉表查询。然后,可以使用一个选择查询将这些查询联接,以显示预期的结果。

下面的示例将使用示例数据库 Northwind.mdb 创建一个查询,以显示与本文前面“摘要”一节中的示例类似的结果。它显示了每个公司每年的销售和总计。
  1. 打开示例数据库,并基于 Orders、Order Details 和 Customers 表创建以下交叉表查询:
       查询:Order Total
       ------------------
       类型:交叉表查询
       联接:Customers.[CustomerID] <-> Orders.[CustomerID]
       联接:Orders.[OrderID] <-> Order Details.[OrderID]
    
       字段:CompanyName
       表名:Customers
       总计:Group By
       交叉表:行标题
    
       字段:Expr1:Year([OrderDate]) & " " & "Order Total"
       表名:
       总计:Group By
       交叉表:列标题
    
       字段:Expr2:Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])))
       表名:
       总计:Expression
       交叉表:值
  2. 基于 Orders 和 Customers 表创建以下交叉表查询:
       查询:Order Count
       ------------------
       类型:交叉表查询
       联接:Customers.[CustomerID] <-> Orders.[CustomerID]
    
       字段:CompanyName
       表名:Customers
       总计:Group By
       交叉表:行标题
    
       字段:Expr1:Year([OrderDate]) & " " & "Order Count"
       表名:
       总计:Group By
       交叉表:列标题
    
       字段:OrderID
       表名:Orders
       总计:Count
       交叉表:值
  3. 基于 Order Total 和 Order Count 交叉表查询创建一个查询。对于要查看的年份,您将使用 CompanyName 以及 Order Total 和 Order Count 字段。下例在 Microsoft Access 中使用了最近两年的 Order Total 和 Order Count。
       查询:多值
       ----------------------
       联接:Order Total.[CompanyName] <-> Order Count.[CompanyName]
    
       字段:CompanyName
       表名:Order Count
    
       字段:1997 Order Count
       表名:Order Count
    
       字段:1997 Order Total
       表名:Order Total
    
       字段:1998 Order Count
       表名:Order Count
    
       字段:1998 Order Total
       表名: Order Total
运行该多值查询将产生与以下类似的一个表:
                          1997 年  1997 年      1998 年  1998 年
   公司名称               定单数   定单额        定单数   定单额
   --------------------------------------------------------------------
   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
备注:如果指定为联接的字段出现在联接查询的多个表中,您需要在表达式中加入表名以示区分。例如,在步骤 1 中您应将
   Year([OrderDate]) & " " & "Order Total"
更改为:
   Year([Orders].[OrderDate]) & " " & "Order Total"
如果将表名添加到行中,就会产生语法错误。如果让表名留为空白,则会产生引用不明确的错误。

参考

有关交叉表的详细信息,请单击帮助菜单上的 Microsoft Access 帮助,在“Office 助手”或“操作向导”中输入交叉表查询,然后单击搜索查看返回的主题。

属性

文章编号: 209143 - 最后修改: 2000年11月29日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Access 2000 标准版
关键字:?
kbhowto kbdta KB209143
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com