临时字段(COMPUTE)
COMPUTE是在TABLE代码内作为动词的目的语来做成。
TABLE FILE 文件名
动词 COMPUTE 临时字段名 / 类型 = 演算式 ;
~
BY TOTAL 临时字段名
WHERE TOTAL 临时字段名 比较子 条件值
END
例(COMPUTE)
TABLE FILE CAR
PRINT CAR MODEL SEATS
COMPUTE WCOST1/D7 = DEALER_COST * 3;
COMPUTE WCOST2/D7 = WCOST1 * 0.1;
BY COUNTRY
动词 PRINT、LIST、SUM、COUNT
COMPUTE 临时字段的关键字。
[补充说明]
COMPUTE 做成后如果要使用BY时,请使用「BY TOTAL 临时字段名」来做成。
COMPUTE 做成后如果要作为条件来使用时,请使用「WHERE TOTAL 临时字段名 演算式」来做成。
临时字段(DEFINE)
DEFINE是在TABLE代码前做成。
DEFINE FILE 文件名
临时字段名 / 类型 = 演算式 ;
~
END
TABLE FILE 文件名
动词 临时字段
~
BY 临时字段
WHERE 临时字段名 比较子 条件值
END
COMPUTE与DEFINE的执行顺序
①WHERE
②DEFINE
③BY,ACROSS
④PRINT,SUM
⑤COMPUTE
COMPUTE与DEFINE差异(例)
商品名 | 价格 | ||
AAA |
| 99 | |
BBB |
| 99 | |
CCC |
| 99 | |
DDD |
| 99 | |
EEE |
| 99 | |
FFF |
| 99 | |
GGG |
| 99 | |
HHH |
| 99 | |
III |
| 99 | |
JJJ |
| 99 |
DEFINE FILE 文件名
支付_DEF/I5M = 支付 * 1.05;
END
TABLE FILE 文件名
SUM COMPUTE 支付_COM/I5M = 价格 * 1.05;
支付_DEF
END
支付_COM | 支付_DEF | ||||||||
\1,039 | \1,030 | ||||||||
|
| ||||||||
各单价乘1.05后合计 | |||||||||
单价合计后乘 1.05 |
COMPUTE |
|
|
| ||
|
|
|
|
|
|
| 单价 |
| 税 |
| |
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
|
| 99 |
|
|
|
合计 |
| 990 | * | 1.05 | |
支付额合计 |
| 1039 |
DEFINE | ||||||||
单价 | 税 | 支付额 | ||||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
99 | * | 1.05 | = | 103 | ||||
支付额合计 | 1030 |