ACC: 创建带有多值字段的交叉表查询

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 109939
本文已归档。它按“原样”提供,并且不再更新。
初级用户: 要求用户界面的单用户计算机上的知识。

概要
在 Microsoft Access 交叉表查询中,您可以指定只有一个字段或计算为值。通常,您可能希望在查询中显示多个值。

例如对于下面的示例演示两个列的每个订单,数的计数的公司信息和顺序计算每年的总和:
   Company Name  1989 Orders  1989 Total  1990 Orders  1990 Total   --------------------------------------------------------------   ABC Company   12           $855.00     15           $1010.25   XYZ Company   1017         $22045.57   1050         $25345.29				
这种类型的查询有时称为多值字段的查询。

注: 在示例文件的 Qrysmp97.exe 中可以看到的这篇文章中使用该技术的演示。有关如何获得此示例文件,请参阅下列文章 Microsoft 知识库中相应的信息:
182568ACC97: Microsoft Access 97 示例查询可用在下载中心
更多信息
若要创建多值字段交叉表查询,您必须创建两个单独的交叉表查询与为您要计算每个值的固定的列标题。这些两个查询可然后联接,使用选择查询显示所需的结果。

下面的示例使用 Microsoft Access 版本 7.0 和 Microsoft Access 97 (或 NWIND.MDB 版本 2.0 版或更早版本中的) 中示例数据库 Northwind.mdb 创建一个查询,以显示结果类似于,上面的示例显示的数,并为每个公司每年的总计。

步骤 1: 创建订单的总交叉表查询

若要进行订单总计的交叉表查询,请按照下列步骤操作:
  1. 打开示例数据库 Northwind.mdb (或 NWIND.MDB 2.0 或更早版本中的),并创建基于订单、 订单明细和客户表下面的交叉表查询
          Query: Order Total      ------------------      Type: Crosstab Query      Join: Customers.[CustomerID] <-> Orders.[CustomerID]      NOTE: In versions 1.x and 2.0, there is a space in Customer ID.      Join: Orders.[OrderID] <-> Order Details.[OrderID]      NOTE: In versions 1.x and 2.0, there is a space in Order ID.      Field: CompanyName         Table Name: Customers         Total: Group By         Crosstab: Row Heading      NOTE: In versions 1.x and 2.0, there is a space in Company Name.      Field: Expr1: Year([OrderDate]) & " " & "Order Total"         Table Name:         Total: Group By         Crosstab: Column Heading      NOTE: In versions 1.x and 2.0, there is a space in Order Date.      Field: Expr2: Sum(CCur([UnitPrice]*[Quantity]*(1.-[Discount])))         Table Name:         Total: Expression         Crosstab: Value      NOTE: In versions 1.x and 2.0, there is a space in Unit Price.					
  2. 在查询网格的上半部分中的灰色区域上的任何地方,即可选定查询。单击在视图菜单上的查询属性、 选中固定列标题复选框和在固定列标题框中键入的条目适合您的 Access 版本:
          Version 1.x:      "1989 Order Total";"1990 Order Total";"1991 Order                        Total";"1992 Order Total"      Version 2.0:      "1991 Order Total";"1992 Order Total";"1993 Order                        Total";"1994 Order Total"      Version 7.0:      "1993 Order Total";"1994 Order Total";"1995 Order                        Total"      Version 97:       "1994 Order Total";"1995 Order Total";"1996 Order                        Total"					
注: 在 Microsoft Access 版本 2.0、 7.0 和 97 中,FixedColumnHeadings 属性称为列标题。

第二步: 创建订单计数交叉表查询

  1. 创建以下的交叉表查询基于订单和客户表:
          Query: Order Count      ------------------      Type: Crosstab Query      Join: Customers.[CustomerID] <-> Orders.[CustomerID]      NOTE: In versions 1.x and 2.0, there is a space in Customer ID.      Field: CompanyName         Table Name: Customers         Total:      Group By         Crosstab:   Row Heading      NOTE: In versions 1.x and 2.0, there is a space in Company Name.      Field: Expr1: Year([OrderDate]) & " " & "Order Count"         Table Name:         Total: Group By         Crosstab: Column Heading      NOTE: In versions 1.x and 2.0, there is a space in Order Date.      Field: OrderID         Table Name: Orders         Total:      Count         Crosstab:   Value      NOTE: In versions 1.x and 2.0, there is a space in Order ID.					
  2. 在查询网格的上半部分中的灰色区域上的任何地方,即可选定查询。单击在视图菜单上的查询属性、 选中固定列标题复选框和在固定列标题框中键入的条目适合您的 Access 版本:
          Version 1.x:      "1989 Order Count";"1990 Order Count";"1991 Order                        Count";"1992 Order Count"      Version 2.0:      "1991 Order Count";"1992 Order Count";"1993 Order                        Count";"1994 Order Count"      Version 7.0:      "1993 Order Count";"1994 Order Count";"1995 Order                        Count"      Version 97:       "1994 Order Count";"1995 Order Count";"1996 Order                        Count"					
注: 在 Microsoft Access 版本 2.0,7.0、 97,FixedColumnHeadings 属性称为列标题。

第三步: 创建多值查询

  1. 创建选择查询基于订单总计和订单计数交叉表查询。 您将使用公司名称以及订单总计和订单计数字段年您要查看其结果。下面的示例在 Microsoft Access 97 使用过去两年的订单总计和订单计数
          Query: Multiple Values      ----------------------      Join: Order Total.[CompanyName] <-> Order Count.[CompanyName]      NOTE: In versions 1.x and 2.0, there is a space in Company Name.      Field: CompanyName         Table Name: Order Count         Show: Yes      Field: 1995 Order Count         Table Name: Order Count         Show: Yes      Field: 1995 Order Total         Table Name: Order Total         Show: Yes      Field: 1996 Order Count         Table Name: Order Count         Show: Yes      Field: 1996 Order Total         Table Name: Order Total         Show: Yes					
运行多值查询将产生类似于下列的表中:
 Company Name          1995 Order Count 1995 Order Total 1996 Order Count.. -------------------------------------------------------------------------- Alfred's Futterkiste  3                $2,022.50        3 Ana Trujillo          2                  $799.75        1 Antonio Moreno        5                $5,960.78        1				

注: 此方法如果不起作用字段中指定的连接 (步骤 One(expr1)) 是多个有一个查询中联接表中的字段。没有任何办法强迫接受在表达式中的表名,而不会产生保留的错误-1310 查询。如果将表名添加到表行中,您生成语法错误。如果完全留的表名,您生成不明确的引用时出错。
参考
有关交叉表查询的详细信息,搜索"交叉表查询,创建,"然后"创建一个交叉表查询而无需使用一个向导,并使用 Microsoft Access 97 帮助索引。

警告:本文已自动翻译

属性

文章 ID:109939 - 上次审阅时间:12/04/2015 09:55:49 - 修订版本: 2.1

Microsoft Access 1.0 标准版, Microsoft Access 1.1 标准版, Microsoft Access 2.0 标准版, Microsoft Access 95 标准版, Microsoft Access 97 标准版

  • kbnosurvey kbarchive kbmt kbinfo KB109939 KbMtzh
反馈