我的要求是使用 JCL - Syncsort 获得相同的记录数。
我的输入文件包含 58-60 位置的压缩十进制值。当输入在 01 和 05 范围之间时,我需要获取记录数。
实际上我试图将 PD 值转换为 ZD 并与 C'01' 和 C'05' 进行比较。
我无法得到结果。
例如:输入 58-60 的文件数据(3 个字节,即 Comp-3 格式)
07.2
05.2
04.0
45.7
02.4
输出将是:
射频值 | 数数
02.4 1
04.0 1
任何人都可以让我知道如何实现这一点吗?
您的规范声明该字段为 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
尝试这个...
//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为每条记录添加一个数字,并在数字字段中对它们进行排序,并对所有此类记录求和,这将为您提供所需的输出。