我的要求是使用JCL - Syncsort获得相同的记录计数。
MY Input File包含打包后的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输出将是:
RF值| Count
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
,并在数字字段上对它们进行排序,并将所有这些记录相加,这将为您提供所需的输出。