Arbutus官网(中国)
当前位置: 主页 > 资源中心 >

Arbutus-Group命令的使用

时间:2015-07-01 12:47来源:未知 作者:admin 点击:
用于对符合规定条件的各条记录运行一系列的 Arbutus Script 命令,只有一个传递到 Arbutus 表。

 命令语法GROUP  <IF 测试> <WHILE 测试> <FIRST|NEXT 范围>
      command 
<...n>
<ELSE IF 测试>
      command
 <...n>
<ELSE>
      command 
<...n>
END
Group命令必须使用END来终止命令。

命令参数

  1. IF 测试
可选。指定一个必须得到满足的条件。只对通过该测试的记录运行 GROUP 命令下的一系列命令。
  1. WHILE 测试
可选。指定让 GROUP 命令继续执行需要满足的一个条件。
  1. FIRST|NEXT 范围
可选。指定 GROUP 命名仅对范围参数指定数量的记录运行。
  1.   command
如果前面的 IF 或 ELSE IF 的计算结果为 true,命令将执行。若该命令位于 ELSE 参数之下,在前面的命令有尚未处理的记录的情况下,该命令执行。
  1. ELSE  IF 测试
可选。指定对不符合 GROUP 命令测试或前面任何 ELSE IF 测试的记录执行测试的条件。
  1. ELSE
可选。指定随后对所有之前测试返回结果为 false 的记录执行的命令。
  1. END
指定 GROUP 语句结束。
 

可以在group命令中使用的命令

 
以下命令可以再group中使用:
1.Age              2 Assign,           3.Benford,        4. Cancel,        5.Classify,                  6. Comment,
7.Compare,      8. Count,           9. Crosstab,     10. Duplicates,                  11. Else,            12. End,
13.Export,        14. Extract,      15. Gaps,          16. Histogram,        17.Join,             18. Let,
19.List,             20.Loop,         21. Merge,       22. Profile,                 23. Report,       24. Sequence,
25. Statistics,  26. Stratify,      27. Summarize,        28. Total            29. Verify

 

Group命令应用示例

a. GROUP
简单组以 GROUP 命令开始,后跟一系列命令,然后以 END 命令终止。例如:
GROUP
  COUNT
  HISTOGRAM ON Quantity MINIMUM 0 MAXIMUM 100 INTERVALS 10
  CLASSIFY ON Location SUBTOTAL Quantity
END
b. GROUP IF
条件组根据条件是 true 还是 false 来执行命令。例如,以下 GROUP 命令仅对 Product_class 域值小于 5 的记录执行:
GROUP IF Product_class < "05"
  COUNT
  HISTOGRAM ON Quantity MINIMUM 0 MAXIMUM 100 INTERVALS 10
  CLASSIFY ON Location SUBTOTAL Quantity
END
c. GROUP IF...ELSE
不满足测试条件的记录会被忽略,除非您包含了 ELSE 语句。ELSE 语句后面可跟任何数量的命令。在以下示例中,将对所有不满足条件的记录进行处理,即对它们的 Quantity 域计算合计。
GROUP IF Product_class < "05"
  COUNT
  HISTOGRAM ON Quantity MINIMUM 0 MAXIMUM 100 INTERVALS 10
  CLASSIFY ON Location SUBTOTAL Quantity
ELSE
  TOTAL Quantity
END
d. GROUP IF...ELSE IF...ELSE
可以在组中包含多个 ELSE/IF 语句,只要每条 ELSE/IF 语句包含不同的测试。在以下示例中,ELSE/IF 语句生成四个总计:
GROUP IF Product_class < "05"
  COUNT
  HISTOGRAM ON Quantity MINIMUM 0 MAXIMUM 100 INTERVALS 10
  CLASSIFY ON Location SUBTOTAL Quantity
ELSE IF Product_class = "05"
  TOTAL Quantity
ELSE IF Product_class = "06"
  TOTAL Quantity
ELSE IF Product_class = "07"
  TOTAL Quantity
ELSE
  TOTAL Quantity
END
e. 嵌套组
嵌套组是指包含在其他组中的组。嵌套组向您提供了功能强大的手段,来控制对哪些记录执行哪些命令。大多数应用程序不需要如此高级的功能,但可在必要时使用嵌套组。
与其他组一样,使用 END 命令可终止嵌套组。ACL 只在所有组命令均终止之后才开始处理数据。例如:
GROUP IF Product_class < "05"
  COUNT
  STRATIFY ON Quantity SUBTOTAL Quantity MIN 0 MAX 100 INT 10
  GROUP IF Quantity > 0
    STATISTICS ON Quantity
    HISTOGRAM ON Quantity
  END
ELSE
  TOTAL Quantity
END
在此示例中,从 COUNT 开始的所有命令(包括下一个 GROUP)只在 Product_class 小于 05 的情况下执行。
STATISTICS 和 HISTOGRAM 命令在 Quantity 大于 0 的情况下执行。但是,由于第二个 GROUP 命令是嵌套的,所以只对满足 Product_class < “05” 且 Quantity > 0 的条件的记录执行 STATISTICS 和 HISTOGRAM 命令。 (责任编辑:admin)
------分隔线----------------------------