我的要求是使用JCL - Syncsort获得相同的记录计数。
MY输入文件包含58-60位置的压缩十进制值。当输入介于01和05之间时,我需要记录计数。
实际上我试图将PD值转换为ZD并与C'01'和C'05'进行比较。
我无法得到结果。
Ex:以58-60输入文件数据(3个字节,采用Comp-3格式)
07.2
05.2
04.0
45.7
02.4
输出将是:
RF值|计数
02.4 1
04.0 1
任何人都可以告诉我如何实现这个目标吗?
答案 0 :(得分:2)
您的规范声明该字段是3字节PD格式,但您提供了包含小数点的示例记录。 PD数据不能包含小数点,因此我假设隐含小数点。对应于您的值07.2的3字节数据实际上包含x'00072C',用于以下目的。
为了使示例更容易理解(并且不知道记录布局的细节),我将3字节PD字段视为从固定长度数据的位置1开始。您可以随意修改示例以适合您的实际数据布局。
//SYSIN DD *
SORT FIELDS=(1,3,PD,A)
INCLUDE COND=(1,3,PD,GT,10,AND,1,3,PD,LT,50)
OUTREC FIELDS=(1,3,PD,ZDF,75X)
OUTFIL FILES=OUT,NODETAIL,
SECTIONS=(1,5,
TRAILER3=(1:1,4,C'.',5,1,COUNT))
/*
如需任何进一步的支持,请联系客户服务部,Syncsort Inc. zos_tech@syncsort.com
答案 1 :(得分:1)
试试这个......
//SYSIN DD * INREC FIELDS=(1,4,C'00001') SORT FIELDS=(01,04,CH,A) SUM FIELDS=(05,05,ZD,A) OUTREC FIELDS=(01,04,05,05) /*
简单地说,我正在为每条记录添加一个数字00001
,并在数字字段上对它们进行排序,并对所有这些记录求和,这将为您提供所需的输出。