如何使用Syncsort获取记录数?

时间:2011-12-15 05:34:35

标签: jcl syncsort

我的要求是使用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

任何人都可以告诉我如何实现这个目标吗?

2 个答案:

答案 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,并在数字字段上对它们进行排序,并对所有这些记录求和,这将为您提供所需的输出。