1、4.5、生成表查询设计,4.5.1、生成表查询的作用,4.5.2、生成表查询的设计,4.5.3、生成表查询的实质,查询只是一个操作的集合,其运行的结果是一个动态数据集。当查询运行结束时,该动态数据集合是不会为Access所保存的。如果希望查询所形成的动态数据集能够被固定的保存下来,就需要使用生成表查询了。例如,如果希望将CMMIS数据库中记录的某段时间内的销售业绩汇总数据导出为HMTL文档,用于Web页发布,就可以将4.3.3节中所述的“销售业绩查询”改建为一个生成表查询。只要运行这个生成表查询,即可创建一个名为“销售业绩汇总表”的数据表对象,这个数据表对象称为“生成表”。以下,让我们来说明如
2、何设计这样一种Access查询对象。,4.5.1、生成表查询的作用,设计生成表查询的操作步骤如下,首先设计合适的选择查询,然后将其指定为生成表查询。下面以创建“销售业绩_生成表查询”为例,说明其操作步骤。 复制一份“销售业绩查询”,并命名为“销售业绩_生成表查询”;在数据库设计视图中的查询对象选项卡上选中它,单击工具栏上的“设计”按钮“ ”;在随之出现的查询设计视图中,单击菜单栏上的【查询】|【生成表查询】,如图所示。,4.5.2、生成表查询的设计,图4-20 “销售业绩_生成表查询”设计视图,随之即会弹出“生成表”对话框,如图所示。在“生成表”对话框中,需要确定生成表的名称,并确定生成表所属
3、的数据库。例如,希望在当前数据库中,生成一个名为“销售业绩汇总表”的生成表,即可设计如图中所示设计参数。单击“确定”按钮“ ”;即完成了“销售业绩_生成表查询”的设计操作。,图4-21 “生成表”对话框,设计完成一个生成表查询后,就可以打开运行它。与打开前述两类查询的情况不同,Access并不显示查询数据表视图,而是在数据库中新建了一个数据表对象,其中的数据即为生成表查询运行的结果。例如,“销售业绩_生成表查询”打开一次的结果,就是在数据库中新建了一个名为“销售业绩汇总表”的数据表对象,其中的数据就是“销售业绩_生成表查询”的运行结果。可以打开这个数据表查看以下,会发现它的数据显示内容完全相同
4、于“销售业绩查询”的数据显示内容。然后,再利用Access的数据导出功能,将这个生成表导出为HMTL文档,即实现了本节开始提出的设计目标。,查询的实质就是SQL语句的应用。观察“销售业绩_生成表查询”的SQL语句,就可以看到,“销售业绩_生成表查询”就是在“销售业绩查询”的SQL语句中增加了一个INTO子句。 以下是“销售业绩_生成表查询”的SQL语句:,4.5.3、生成表查询的实质,SELECT 销售数据记录.销售日期, 库存数据记录.货号, 库存数据记录.货名,库存数据记录.计量单位, 库存数据记录.进货单价, 库存数据记录.库存数量,销售数据记录.销售单价, Sum(销售数据记录.销售数量) AS 销售数量,销售单价*销售数量-进货单价*销售数量 AS 销售利润 INTO 销售业绩汇总表 FROM 库存数据记录 INNER JOIN 销售数据记录 ON 库存数据记录.货号 = 销售数据记录.货号 GROUP BY 销售数据记录.销售日期, 库存数据记录.货号, 库存数据记录.货名,库存数据记录.计量单位, 库存数据记录.进货单价, 库存数据记录.库存数量,销售数据记录.销售单价 ORDER BY 销售数据记录.销售日期;,