通过 OUTFIL 获取文件的两个字段之间的组合计数错误



我需要包含以下条件:

 1) Total no.of records per combination of field1 and field3 (INCLUDE=(1,2,8,3,CH,A)

输入文件:字段 1 和字段 3 有 5 个组合,如果您在下面的示例中看到

 field1 field2 field3 field4
 AA     00000  123    ABC
 AA     00000  123    ABC
 AA     00000  456    ABC
 BB     00000  123    ABC
 BB     00000  123    ABC
 BB     00000  789    ABC
 AA     00000  567    ABC

输出文件:获取 5 行,每个组合一行,给出它的出现次数

 FIELD1 FIELD3  COUNT-OF-COMBINATION
 AA     123     2
 AA     456     1
 AA     567     1
 BB     123     2
 AA     789     1
My method is:
 //SYSIN    DD  *                                                       
   SORT FIELDS=COPY                                                     
   OPTION COPY                                                          
   OUTFIL REMOVECC,NODETAIL,                                            
   TRAILER1=(1,2,'ON',8,3,'=',COUNT=(M11,LENGTH=10)))

/*

我得到的答案是:

           AA ON 123 = 7

这是错误的:它应该是

  AA  ON   123   =  2
  AA  ON   456   =  1
  AA  ON   567   =  1
  BB  ON   123   =  2
  AA  ON   789   =  1

你有:

 SORT FIELDS=COPY                                                     
 OPTION COPY                                                          
 OUTFIL REMOVECC,NODETAIL,                                            
 TRAILER1=(1,2,'ON',8,3,'=',COUNT=(M11,LENGTH=10)))

第一个问题是你有SORT FIELDS=COPYOPTION COPY。这些意味着同样的事情。删除一个或另一个(我倾向于使用选项复制)。

接下来,您有一个备用的右括号。

然后你正在使用TRAILER1。有三种类型的预告片:1 是"在报告的末尾";2 在页面末尾;3 处于控制中断状态。

您使用TRAILER1,因此在文件末尾,您将获得一条记录,其中包含文件总计。

之后,TRAILER1的位置与输出匹配,而不是输入文件。

这使我们认识到这样一个事实,即您没有使用该数据运行那些排序控制卡。控制卡存在语法错误,这意味着它们不会运行。更正卡片并保留TRAILER1会AAON567=0000000007

这将我们带到控制中断,这就是您缺少的。

您可以使用 SECTIONS 定义控制中断。TRAILER3是部分的一部分。

修复除输出格式以外的所有内容:

 OPTION COPY 
 OUTFIL REMOVECC,NODETAIL, 
        SECTIONS=(1,2,
                  15,3, 
                  TRAILER3=(1,2,
                            'ON',
                             15,3,
                             '=',
                             COUNT=(M11,
                                    LENGTH=10))) 

这为您提供:

 AAON123=0000000002
 AAON456=0000000001
 BBON123=0000000002
 BBON789=0000000001
 AAON567=0000000001

如果你想要列标题,看看如何使用HEADER3(HEADER1和HEADER2在这个简单的情况下也可以)。如果您想要"页面总计",请查看TRAILER2。如果需要文件总计,请使用 TRAILER1。

相关内容

  • 没有找到相关文章

最新更新