我想知道是否有可能读取下一个记录,当我们使用基于一定条件的SyncSORT (SyncTool)。
输入
示例排序键将是account nbr +降序记录类型+金额
account nbr amount record type
11111111111 10 reversal not in the output
11111111111 10 deposit not in the output
33333333333 20 deposit in the output
44444444444 15 deposit in the output
55555555555 20 reversal in the output
55555555555 10 deposit in the output
66666666666 30 reversal in the output no match
当读取反转类型时,应该有相同数量的存款,在这种情况下,它既记录反转,又不记录输出文件。反转和存款的金额可能不相同,在这种情况下,两个记录都应该在输出文件中。
输出33333333333 20 deposit
44444444444 15 deposit
55555555555 20 reversal
55555555555 10 deposit
66666666666 30 reversal
是。只要你的SyncSORT是最新的。
你需要使用JOINKEYS。为两个输入数据集指定相同的DSN,并指出它们是排序的。有一个未记录的特性允许使用JNFnCTNL文件,如DFSORT。
在JNF1CNTL(这是第一个JOINKEYS数据集的"预处理器")中,为每条记录临时添加一个序列号。默认情况下,序列从1开始。在这里,显式是有用的…
因为,在JNF2CNTL中,您想要做同样的事情,但是从0开始序列(start =0)。
每个JOINKEYS的键是序列号。
使用JOIN UNPAIRED,F1。用第一个文件中的所有数据和第二个文件中的比较数据定义一个REFORMAT。
如果您想象一下连接,这是一个四记录数据集的样子:
- - A 0
A 1 B 1
B 2 C 2
C 3 D 3
D 3 - -
因为您指定了JOIN UNPAIRED,F1您实际上不会看到不匹配的a0(因为它在F2上),但您会看到不匹配的d3。
如果您查看REFORMAT记录,您现在有来自"当前"记录的数据,以及来自"下"记录的数据。
然后还有更多的工作来选择您想要的记录。但是,先吃晚饭……