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 |
要将命令结果发送到的位置:
|
LOCAL 可选 |
请将输出文件保存在与 Analytics 项目相同的位置。 说明 仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。 LOCAL 参数必须紧跟在 TO 参数后面。 |
IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。 仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 |
WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。 该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 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 既可以处理排序的数据,也可以处理非排序的数据。 输出中的行域和列域都自动按升序排序。
如果您指定一个以上的行域,则这些域从您指定的第一个行域开始使用嵌套排序。