问题描述
//SUMREC01 JOB SUMREC0J
//SUMEXEC EXEC pgm=SORT
//SORTIN DD *
CA-02963
CA 06288
CA 07351
CA 05027
CA 05200
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,2,CH,A)
SUM FIELDS=(3,6,ZD)
/*
提交上述工作时,我得到的答案是“ CA026829”。对于JCL,我还必须考虑减号并获得答案“ CA023866”。
解决方法
您可以将 SFF 字段转换为 ZD 对数据求和,如下所示:
//SUMREC01 JOB SUMREC0J
//SUMEXEC EXEC PGM=SORT
//SORTIN DD *
CA-02963
CA 06288
CA 07351
CA 05027
CA 05200
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
INREC FIELDS=(1,2,3,6,SFF,TO=ZD)
SORT FIELDS=(1,CH,A)
SUM FIELDS=(3,ZD)
OUTREC FIELDS=(1,ZD,EDIT=(SIIIIT),SIGNS=(,-))
/*
将导致您的输出文件包含:
CA 20903
通过 AHLSORT for Windows x64 验证,版本 v14r3-87-g811342a2
DFSORT 和 SYNCSORT 的工作方式应该相同。