-1

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

任何人都可以让我知道如何实现这一点吗?

4

2 回答 2

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

于 2011-12-16T18:22:21.227 回答
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为每条记录添加一个数字,并在数字字段中对它们进行排序,并对所有此类记录求和,这将为您提供所需的输出。

于 2011-12-18T13:02:50.647 回答