CROSSTAB 命令

根据两个或更多个字符域或数值域中的相同值组合对记录进行分组,并且在由行和列构成的网格中显示生成的组。 统计每个组中的记录数,并且小计每个组的指定数值域。

语法

CROSSTAB <ON> 行域 <...n> COLUMNS 列域 <SUBTOTAL 数值域 <...n>|SUBTOTAL ALL> TO {SCREEN|表名称|文件名|GRAPH|PRINT} <LOCAL> <IF 测试> <WHILE 测试> <FIRST 范围|NEXT 范围> <APPEND> <COUNT> <OPEN> <HEADER 页眉文本> <FOOTER 页脚文本>

参数

名称 描述
ON 行域 <...n>

要用于生成的行和列网格中的行的域或表达式。 您可以指定一个或多个域或表达式作为行的基础。

COLUMNS 列域

要用于生成的行和列网格中的列的域或表达式。 您只可以为列指定一个域或表达式。

SUBTOTAL 数值域 <...n> | SUBTOTAL ALL

可选

要为每个组小计的一个或多个数值域或表达式。

多个域必需以空格分隔。 指定 ALL 对表中的所有数值域进行小计。

TO SCREEN | 表名称 | 文件名 | GRAPH | PRINT

要将命令结果发送到的位置:

  • SCREEN 在 Analytics 显示区域中显示结果

    提示

    您可以单击显示区域中的任何链接结果值以向下追溯到源表中的关联记录。

  • 表名将结果保存到一个 Analytics 表

    请将表名指定为具有 .FIL 文件扩展名的带引号的字符串。 例如:TO "Output.FIL"

    默认情况下,表数据文件 (.FIL) 被保存到包含 Analytics 项目的文件夹。

    请使用绝对或相对文件路径将该数据文件保存到另外的现有文件夹:

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    说明

    表名称被限制为不超过 64 个字母数字字符(不包括 .FIL 扩展名)。 该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。 该名称不能以数字开头。

  • 文件名将结果保存至文件

    请将文件名指定为具有适当文件扩展名的带引号的字符串。 例如:TO "Output.TXT"

    默认情况下,该文件被保存到包含 Analytics 项目的文件夹。

    请使用绝对或相对文件路径将该文件保存到另外的现有文件夹:

    • TO "C:\Output.TXT"
    • TO "Results\Output.TXT"
  • GRAPH 在 Analytics 显示区域中的图表中显示结果
  • PRINT 将结果发送到默认打印机
LOCAL

可选

请将输出文件保存在与 Analytics 项目相同的位置。

说明

仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。

LOCAL 参数必须紧跟在 TO 参数后面。

IF 测试

可选

一个条件表达式,它必须为真以便处理每个记录。 仅对满足条件的那些记录执行该命令。

说明

在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。

WHILE 测试

可选

一个条件表达式,它必须为真以便处理每个记录。 该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。

说明

如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。

FIRST 范围 | NEXT 范围

可选

要处理的记录数:

  • FIRST 从第一个记录开始处理,直到达到指定的记录数为止
  • NEXT 从当前选定的记录开始处理,直到达到指定的记录数为止

请使用范围指定要处理的记录数。

如果您省略 FIRST 和 NEXT,则会默认处理所有记录。

APPEND

可选

将命令输出附加到现有文件的末尾,而不是覆盖现有文件。

说明

您必须确保命令输出的结构和现有文件完全相同:

  • 相同的域
  • 相同的域顺序
  • 匹配的域具有相同的长度
  • 匹配的域具有相同的数据类型

Analytics 将输出附加到现有文件,而无论其结构如何。 如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。

COUNT

可选

包含记录计数作为列。 当您使用 SUBTOTAL 时,计数很有用。

如果您不选择任何小计域,则自动包括计数。

OPEN

可选

在命令执行后打开该命令创建的表。 仅当该命令创建输出表时有效。

HEADER 头文本

可选

要在报告的每个页面的顶部插入的文本。

必须将头文本指定为带引号的字符串。 该值将覆盖 Analytics HEADER 系统变量。

FOOTER 尾文本

可选

要在报告的每个页面底部插入的文本。

必须将尾文本指定为带引号的字符串。 该值将覆盖 Analytics FOOTER 系统变量。

示例

使用 SUBTOTAL 对应收帐款表进行交叉制表

您想要按客户编号域和交易类型域对应收帐款表进行交叉制表。 您还想要小计交易金额域。

输出按客户进行分组,而在每个客户内部,则按交易类型进行分组。 它包括每个交易类型中每个客户的合计交易金额:

OPEN 应收账款
CROSSTAB ON 客户编号 COLUMNS 交易类型 SUBTOTAL 交易金额 COUNT TO SCREEN

对应收帐款表进行交叉制表以查找重复交易

您需要在应收帐款表中查找重复交易的证据。

为此,您按交易金额域和交易类型域对应收帐款表进行交叉制表。 输出结果对每个交易类型的相同交易金额进行分组和计数:

OPEN 应收账款
CROSSTAB ON Trans_Amount COLUMNS Trans_Type TO SCREEN

备注

说明

有关此命令工作原理的详细信息,请参见 Analytics 帮助

工作原理

CROSSTAB 对在两个或更多个字符或数值域中具有相同值组合的记录进行分组。

输出包含一个由行和列构成的、类似于数据透视表的网格。 对于每个组,它都包含单个行-列交点,并且包含对源表中属于该组的记录数的统计。

排序和 CROSSTAB

CROSSTAB 既可以处理排序的数据,也可以处理非排序的数据。 输出中的行域列域都自动按升序排序。

如果您指定一个以上的行域,则这些域从您指定的第一个行域开始使用嵌套排序。