JOINKEYS 组合两个文件
我想使用下面的示例代码来解释我的场景,
两个文件需要通过方法连接起来 acct# 使用 JOINKEYS 但在 file1 中 acct# 存在于位置:33 但在 file2 acct# 存在于 位置:1 或 2 取决于 char 'C' at 位置:1。换句话说,如果字符'C' 存在于位置:1 那么我们需要 考虑位置:2 的 acct# 否则考虑 acct# from 位置:1。我想做所有这些事情 只需一步。
希望我明确了我的要求。感谢您的解决方案。
//STEP010 EXEC PGM=SORT,
// REGION=4096K
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
//SORTIN DD DUMMY
//*
//SORTJNF1 DD *
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253347100
2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253368600
8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3725826154600
9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3725817782600
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253347122
/*
//*
//SORTJNF2 DD *
C3785253347100
C3785253368600
3725826154600
3725817782600
//SORTOUT DD SYSOUT=*
//JNF2CNTL DD *
INCLUDE COND=(1,1,CH,EQ,C'C'),
INREC BUILD=(1,13)
/*
//*
//SYSIN DD *
JOINKEYS FILES=F1,FIELDS=(33,13,A)
JOINKEYS FILES=F2,FIELDS=(01,13,A)
JOIN UNPAIRED,F1
REFORMAT FIELDS=(F1:01,45,F2:01,13),FILL=C'$'
SORT FIELDS=COPY
/*
I would like to explain my scenario using sample code below,
Two files need to be joined by means
of acct# using JOINKEYS but in file1
acct# exists at position:33 but in
file2 acct# exists either at
position:1 or 2 depends on char 'C' at
position:1. In other words if char 'C'
exists at position:1 then we need to
consider acct# from position:2
otherwise consider acct# from
position:1. I want do all these things
in a SINGLE step.
Hope i made my requirement clear. Appreciate your solution.
//STEP010 EXEC PGM=SORT,
// REGION=4096K
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
//SORTIN DD DUMMY
//*
//SORTJNF1 DD *
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253347100
2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253368600
8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3725826154600
9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3725817782600
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253347122
/*
//*
//SORTJNF2 DD *
C3785253347100
C3785253368600
3725826154600
3725817782600
//SORTOUT DD SYSOUT=*
//JNF2CNTL DD *
INCLUDE COND=(1,1,CH,EQ,C'C'),
INREC BUILD=(1,13)
/*
//*
//SYSIN DD *
JOINKEYS FILES=F1,FIELDS=(33,13,A)
JOINKEYS FILES=F2,FIELDS=(01,13,A)
JOIN UNPAIRED,F1
REFORMAT FIELDS=(F1:01,45,F2:01,13),FILL=C'
SORT FIELDS=COPY
/*
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这就是您想要的(注意 JNF2CNTL 流内):
I think this is what you want (notice the JNF2CNTL in-stream):