你目前正处于脱机状态,正在等待 Internet 重新连接

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

本文的发布号曾为 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 助手”或“操作向导”中输入交叉表查询,然后单击搜索查看返回的主题。
inf Qrysmp00 exe
属性

文章 ID:209143 - 上次审阅时间:11/29/2000 15:23:00 - 修订版本: 1.0

  • Microsoft Access 2000 标准版
  • kbhowto kbdta KB209143
反馈