首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sync排序的GROUP子句

使用Sync排序的GROUP子句
EN

Stack Overflow用户
提问于 2014-12-29 19:00:15
回答 1查看 2.9K关注 0票数 1

我在一个文件中有一些内容,我必须生成统计数据,比如有多少记录是类型- 1、类型-2等。类型的数量可以更改,并且在文件到达之前代码是未知的。在SQL系统中,我可以使用COUNT和GROUP BY子句来完成这个任务。但是我不确定我是否可以使用SYNCSORT或COBOL程序来完成这个任务。这里有人想知道我如何使用SYNCSORT在文件上实现'GROUP‘类型查询。

样本数据:

代码语言:javascript
复制
TYPE001 SUBTYPE001 TYPE01-DESC
TYPE001 SUBTYPE002 TYPE01-DESC
TYPE001 SUBTYPE003 TYPE01-DESC
TYPE002 SUBTYPE001 TYPE02-DESC
TYPE002 SUBTYPE004 TYPE02-DESC
TYPE002 SUBTYPE008 TYPE02-DESC

我想要得到信息,如TYPE001 ==> 3记录,TYPE002 ==> 3记录。代码直到运行时才知道的是TYPENNN值

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-30 08:00:37

您已经按顺序显示数据,因此不需要对数据本身进行排序,这使得使用SUM FIELDS=SORT的解决方案很糟糕,如果有人建议它(加上格式化代码)。

使用单个输入文件和SUM FIELDS=的MERGE会更好,但仍然需要格式化的代码。

生成适合您的输出的最简单方法是使用OUTFIL报告函数:

代码语言:javascript
复制
 OPTION COPY 
 OUTFIL NODETAIL, 
        REMOVECC, 
        SECTIONS=(1,7, 
                  TRAILER3=(1,7, 
                            ' ==> ', 
                            COUNT=(M10,LENGTH=3),
                            ' Records'))

NODETAIL说“删除所有数据线”。REMOVECC说“虽然这是一个报告,但不要在其中一个输出记录上使用打印机控制字符”。SECTIONS说“我们将使用控制中断,在这里他们(在本例中)是”。在本例中,您的控件字段为1,7。TRAILER3定义了在每个控件中断处将产生的输出:COUNT这里是该特定中断中的记录数。M10是一个编辑掩码,它将前导零变为空白。LENGTH给出计数输出的长度,从样本数据中选择三个,子类型是唯一的,并且有三个数字作为数据的唯一部分。更改为任何适合您的实际数据。

您还不清楚,您可能希望输出“浮动”(3bb而不是bb3,其中b表示空白)?需要更多的代码..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27694459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档