连接表
在报表系统中,通常您可能需要结合两个或更多表中的数据来获取所需的信息进行分析和报告。 要想从两个或更多表中检索数据,您必须通过称为“连接表”的操作来结合表。连接是使用共通列来建立两表之间关系的一种方式。
在Zoho Reports中,您可以使用以下两种方式其中之一来连接表,进而创建报表。
- 自动连接
- 查询表
自动连接表
当您想要使用跨多个表生成的数据来创建报表时,Zoho Reports提供给您一项称为自动连接的特别功能。如果表是使用一个引用列所连接的,那么此功能会在创建报表时自动地连接表。为了使用此功能,您需要指定这两个表是使用引用列关联在一起的。要定义两个表之间的引用关系,它们之间必须至少有一个共通列。让我们使用一个例子来进一步地讨论。
这里有一个例子,说明了在创建报表时如何基于引用关系来定义查找列以及自动连接如何结合表。
"店铺销售数据库" 模型:
在以上给出的店铺销售数据库模型中,销售和销售人员表有一个称之为销售人员Id 的共通列。在'销售'表中,每个销售是与做销售的销售人员Id 关联在一起的。在'销售人员' 表中,每位销售人员是通过销售人员Id 列指定的一个唯一id所识别的。类似地,销售和产品详情表有一个称之为产品ID 的共通列。在'销售'表中,每个销售是与一个通过产品ID 列所识别的产品关联在一起的。在产品表,每个产品是通过产品ID 列指定的一个唯一id所识别的。
有了这些关联列,我们可以运用销售人员Id列来定义销售和销售人员表之间的引用关系。类似地,可以基于共通列产品ID 来建立销售和产品详情表之间的一种引用关系。当您开始基于这些表创建报表且一旦定义了引用列关系时,Zoho Reports将会使用自动连接功能自动地连接这些表。
定义引用
这里讲一下如何定义引用关系。
假定Zoho Reports中已经创建了以上的店铺销售数据库以及相应的表。让我们开始运用共通列销售人员ID 来定义销售和销售人员表之间的引用。
- 在报表数据库的资源管理器标签下,打开销售表并点击工具栏中的编辑设计按钮。
- 在出现的对话框中,点击销售人员ID 的数据类型 列单元格并从下拉列表中选择引用列 数据类型。
- 点击销售人员ID 和引用列 交叉处的单元格。您将会在如下所示的下拉列表中看见数据库中所有表和它们列的列表。选择销售人员表中的销售人员ID。
现在将会出现一个如下所示的包含转换期间错误处理选项和Zoho Reports中父表里某行被删除时子表对应行可选择的执行操作选项的对话框。
这里是对话框中可用选项的简述。
如果转换出错:
- 为相应记录的列设置空值: 如果在任意列值中发现任何的冲突,相应列值将会被设置为空(NULL)
- 停止转换并回滚更改: 如果在任意列值中发现任何的冲突,将会保留现有列值。
删除引用列(父表)的值时:
- 从子表中删除相应行: 当删除父表中行,接着子表中所有相应行都将会被自动地删除。
- 将子表相应值设置为空(Null): 当删除父表中行,子表中的匹配行不会被删除。而是将值设置为NULL。
- 选择所需的选项后点击确定。
现在,已经运用引用列销售人员ID 建立了销售和销售人员表之间的关系。由于销售表引用了销售人员表的一个列,于是这里我们将销售表称之为销售人员表的子表,而销售人员表为父表。
类似地,我们可以使用产品ID列来定义销售和产品详情表之间的引用关系。这里为销售表(子表)定义了查找列,产品详情表为父表。
使用自动连接创建报表
一旦使用引用列对表进行了关联,您就可以通过选择任意包含引用关系的表来创建报表。当您跨表拖拽列时,Zoho Reports将会自动地连接这些表中的数据并生成报表。
这里来解释如何使用自动连接功能创建每个销售人员的销售图表:
- 打开'销售'表并选择工具栏中的'新建图表视图'选项。
- 现在,自动连接功能检测它与其他表的引用关系并在报表设计器中的列列表面板列出产品和销售表的所有列。
- 从销售表拖拽销售人员名称 列到X轴区域并从销售表拖拽销售 列到Y轴区域。
- 选择'点击这里生成图表'。
自动连接功能将会使用引用列产品ID 自动地连接销售和销售人员表中的数据并提供报表。
另外,可以使用关联表中的列过滤报表。继续上面的例子,可以使用产品详情表中的产品名称 列来过滤图表数据并且对于选择的产品按照销售人员来显示销售。
使用查询表连接
如果使用自动连接功能生成的报表不满足您的特定需求,您通常可以创建一个查询表来连接表并使用其创建报表。使用共通列和一个SQLSelect连接查询来创建一个查询表进而连接单独的表并从两个表中检索您想要的数据。
例如,可以创建一个查询来结合销售和销售人员表以检索每个销售人员所做销售的数据。
以上的示例查询结合了销售 & 销售人员表。一旦您创建了连接必要表的查询表,那么Zoho Reports将会允许您创建任意类型的报表以对其进行分析和可视化。