我正在尝试运行一个SYNCSORT作业,它将删除重复的条目,当我运行它时,我仍然得到重复的条目。下面是我使用的SYNCSORT代码:
INCLUDE COND=(((61,1,CH,EQ,C'P'),OR,
(61,1,CH,EQ,C'V')),AND,
(8,2,CH,EQ,C'FL'))
OUTREC FIELDS=(1:12,20,
30:36,20,
55:61,1)
SORT FIELDS=(30,20,CH,A,
01,20,CH,A)
SUM FIELDS=NONE 输入如下:
----+----1----+----2----+----3----+----4----+----5----+----6
FL AMELIA CITY
32034 FL NASSAU FERNANDINA BEACH P
32034 FL NASSAU AMELIA CITY V
32034 FL NASSAU AMELIA ISLAND S
32034 FL NASSAU FERNANDINA S我得到了大部分的预期输出,除了我仍然得到重复。我的输出如下:
----+----1----+----2----+----3----+----4----+----5----+
MANATEE BRADENTON P
MANATEE BRADENTON P
MANATEE BRADENTON P
MANATEE BRADENTON P
MANATEE BRADENTON P
MANATEE BRADINGTON V
POLK BRADLEY P
HILLSBOROUGH BRANDON P
SUWANNEE BRANFORD P
MIAMI-DADE BRICKELL V任何帮助都将不胜感激,因为我找不到我的错误。
发布于 2016-08-08 23:29:53
这就是你总结的内容:
< ------------ Sort Field ----------------------->
----+----1----+----2----+----3----+----4----+----5----+----6
FL AMELIA CITY
32034 FL NASSAU FERNANDINA BEACH P
32034 FL NASSAU AMELIA CITY V
32034 FL NASSAU AMELIA ISLAND S
32034 FL NASSAU FERNANDINA S重复的记录在前11个字节中是不同的,看不到。尝试删除以检查。
可能的变化-
以下排序基于输出记录:
INCLUDE COND=(((61,1,CH,EQ,C'P'),OR,
(61,1,CH,EQ,C'V')),AND,
(8,2,CH,EQ,C'FL'))
OUTREC FIELDS=(1:12,20,
30:36,20,
55:61,1)
SORT FIELDS=(42,20,CH,A,
12,20,CH,A)
SUM FIELDS=NONE发布于 2016-08-09 22:05:35
不管您编写“排序”的不同阶段的顺序如何,它们都将按照排序所需的顺序执行。
在您的例子中,这将是INCLUDE,然后是SORT,然后是SUM,然后是OUTREC。您可以通过完全倒置控制卡来检查这种情况,您将得到相同的输出。
如果您想在使用INREC排序之前做一些事情,而不只是尝试在排序语句之前定位OUTREC。在这里,由于您是SORTing,所以只需要包含所需的数据。您不希望包括格式的间距。为什么要加载文件以便在每条记录上使用额外的相同数据进行排序?
对于INREC和OUTREC,请不要使用FIELDS。在OUTFIL上,请不要使用OUTREC。很明显,字段是“重载”的(查看您使用了多少次字段,并查看有多少字段是“相同的”),而OUTREC是“重载”的。十多年前,为了让事情变得更清晰,BUILD被引入了--它描述了它正在做什么,而且每次看到构建时,它只意味着构建。
INCLUDE COND=(((61,1,CH,EQ,C'P'),
OR,
(61,1,CH,EQ,C'V')),
AND,
(8,2,CH,EQ,C'FL'))
INREC BUILD=(36,20,
12,20,
61,1)
SORT FIELDS=(1,40,CH,A)
OUTREC BUILD=(21,10,
10X,
1,20,
5X,
41,1) INREC只选择所需的数据,并按只需指定一个排序键的顺序进行选择。
然后,OUTREC以您想要的方式格式化数据。对于排序中的每个记录,保存了15个字节(空白)。10X为10空白,5X为5空白。
请注意,如果包含“显式”空格而不是使用列号的隐式空格,则代码和理解要容易得多,因此更易于维护。对报表的10列进行成像,以及第一列和第二列之间的间隔是不正确的。您想要更改所有的列引用,只是为了增加一个空间,还是希望将7X更改为8X,其余的就会自行解决?即使你喜欢乏味的改变,记住你的同事:-)
如果您的数据已按顺序排列,请不要使用SUM FIELDS=NONE。使用报表功能,REMOVECC,NODETAIL和SECTIONS与TRAILER3。从不为允许使用SUM FIELDS=NONE删除重复数据而对数据进行排序。
https://stackoverflow.com/questions/38838687
复制相似问题