输入文件列在fiesr 2列,A文件的第3列上进行比较 - B第3列B文件shud给出减计数,总计8个TTTTTTTT用于计数
OPTION COPY
JOINKEYS FILES=F1,FIELDS=(5,4,A,10,20,A)
JOINKEYS FILES=F2,FIELDS=(1,4,A,6,20,A)
REFORMAT FIELDS=(F1:10,20,9,1,5,4,30,1,31,10,F2:27,10)
JOIN UNPAIRED,F1
INREC BUILD=(1,46,27,10,SFF,SUB,37,10,SFF,EDIT=(TTTTTTTT))
OUTFIL REMOVECC,NODETAIL,
SECTIONS=(1,54,
TRAILER3=(1,36,
';',
37,10,
';',
47,7))
输出给出最后一列(减去7位数,其中它是8个字符 为什么它采取55列而不是54在SECTIONS = 1,54中定义并且没有给予abend添加'; ',为了一个'; '如果你看到cols,它会从54到55增加1列。 为secont添加'; '它只是切断了文件的最后一个字符
----+----1----+----2----+----3----+----4----+----5----+
********************************* Top of Data *********
22222222 ;5060; 1; 1;0000000
答案 0 :(得分:0)
47,7))
您只需要从输入中复制七个字节,因此只复制七个字节,而不是八个。
我看不出你为SECTION使用OUTFIL的任何理由。
您正在将这些部分的控制字段定义为整个记录。如果连续记录相同,它们将显示为一条记录,而不进行总计。尝试获取测试数据以向自己展示。
当F2不存在时,对于F2数据使用SFF是创造性的,但是使事情变得不那么清楚。您的号码是否已签名?此外,当你减去你不允许否定结果。您的任何数字都可以包含八位以上的数字吗?如果是这样,如果SUB的结果为您提供超过八位数字,则会截断。
OPTION COPY
JOINKEYS FILES=F1,FIELDS=(5,4,A,10,20,A)
JOINKEYS FILES=F2,FIELDS=(1,4,A,6,20,A)
REFORMAT FIELDS=(F1:10,20,9,1,5,4,30,1,31,10,F2:27,10)
JOIN UNPAIRED,F1
INREC BUILD=(1,36,
C';',
37,10,
C';',
27,10,SFF,
SUB,
37,10,SFF,
EDIT=(TTTTTTTT))
可以使用的SFF的替代格式是UFF(用于自由格式)和FS,用于固定格式,具有可选的浮动符号。我认为FS最符合您的要求。
在EDIT模式中,T表示“有效数字”,因此将保留前导零。我指出一个“无关紧要的数字”,因此前导零将显示为空白。
EDIT=(IIIIIIIT)
您可以使用手册中的标准模式和许多可以使用EDIT模式执行的操作示例。