-1

我需要包括这个条件:

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

输入文件:FIELD1 和 FIELD3 有 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
4

1 回答 1

2

你有:

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

第一个问题是你有SORT FIELDS=COPYand OPTION COPY。这些意思是一样的。删除一个或另一个(我倾向于使用 OPTION COPY)。

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

然后你正在使用 TRAILER1。TRAILERn 有 3 种类型: 1 是“在报告的末尾”;2 在页面的末尾;3 处于控制中断。

您使用 TRAILER1,因此在文件末尾您会得到一条记录,其中包含文件总数。

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

这使我们认识到您没有使用该数据运行那些排序控制卡。控制卡有语法错误,这意味着它们无法运行。更正卡片并保留 TRAILER1 得到AAON567=0000000007

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

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

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

 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。

于 2013-11-08T15:15:54.210 回答