IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

将匹配的记录作为单个记录写入输出文件


IBM大型机论坛 -> DFSORT / ICETOOL
发表新话题   该主题已锁定:您无法编辑帖子或回复。
查看上一个主题 :: 查看下一个主题  
作者 信息
穆拉利·安达鲁里

新的用户


已加入:2013年6月7日
帖子:23
地点:美国

发布发表:2021年1月27日星期三7:44 pm
引用回复

嗨,团队,

我正在尝试找出满足以下要求的解决方案,但未能成功。
有人可以帮我使用排序工具吗?
我尝试了ICETOOL,DFSORT,甚至用谷歌搜索,但没有运气。

输入文件1:
111印度
222澳大利亚
333德国
444美国

输入文件2:
111德里
222堪培拉
444华盛顿

输入文件3:
111金
222钻石
333银
第444章

输出应为:
111印度德里金
222澳大利亚堪培拉戴蒙德
333德国银
444美国华盛顿白金

谢谢。
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃的成员


已加入:2008年4月29日
帖子:939
所在地:马里兰

发布发表:2021年1月27日星期三9:53 pm
引用回复

请介绍您尝试DFSORT,ICETOOL等的结果。

RTFM,或搜索:“ SORT JOIN操作”
回到顶部
查看用户资料 发送私信
穆拉利·安达鲁里

新的用户


已加入:2013年6月7日
帖子:23
地点:美国

发布发表:2021年1月27日星期三10:16下午
引用回复

您好Sergeyken,

我尝试使用连接键,但是找不到使用三个输入文件进行排序连接的解决方案。

将尝试使用RTFM。
回到顶部
查看用户资料 发送私信
乔格·芬代森

活跃用户


已加入:2015年8月15日
帖子:389
地点:德国班贝格

发布发表:2021年1月27日星期三10:45 pm
引用回复

如果您总是有3条记录,请尝试MERGE和IFTHEN =(WHEN = GROUP..PUSH),这应该有用。除此之外,请执行sergeyken建议的操作。
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2581
地点:美国纽约

发布发表:2021年1月28日星期四12:05上午
引用回复

或者,您可以使用SPLICE作为DFSORT的非常强大的功能来执行此操作,但是我更喜欢Joreg的建议将其RECORDS = 3分组,依此类推...。
码:
// STEP1 EXEC  PGM=ICETOOL 
//工具   DD  SYSOUT=*   
// DFSMSG    DD  SYSOUT=*   
// DSN1 DD *               
111印度                   
222澳大利亚               
333德国                 
444美国                     
/*                         
// DSN2 DD *               
111德里                   
222堪培拉               
444华盛顿             
/*                         
// DSN3 DD *               
111金                   
222钻石                 
333银                 
第444章               
// TMP DD DSN =&&TMP,UNIT = SYSDA,SPACE =(CYL,(1,1)),DISP=(MOD,PASS)       
//合并 DD SYSOUT = *                                                   
// TOOLIN DD *                                                         
从复制(DSN1) TO(TMP)                                               
从复制(DSN2) TO(TMP) USING(CTL2)                                   
从复制(DSN3) TO(TMP) USING(CTL3)                                   
来自(TMP) TO(MERGE) ON(1,3,CH)与任何人保持联系(21,20) -
  WITH(41,20) USING(CTL4)                                             
// CTL2CNTL DD *                                                       
  INREC BUILD=(1,3,21:4,20)                                           
// CTL3CNTL DD *                                                       
  INREC BUILD=(1,3,41:4,20)                                           
// CTL4CNTL DD *                                                       
 OUTFILE REMOVECC,BUILD =(1,80,SQZ=(SHIFT=LEFT))                     

输出-
码:
    COMMAND INPUT ===>                                                  SCROLL ===>    CSR 
**************************************数据顶部************** ********************
第111章                                                               
222Australiacanberradimond                                                     
333德国银                                                               
444-USAWASHINGTONPLATINUM                                                       
********************************数据底部*************** *****************
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃的成员


已加入:2008年4月29日
帖子:939
所在地:马里兰

发布发表:2021年1月28日星期四上午12:48
引用回复

向那些不习惯用自己的思维思考的人提供任何现成的解决方案,将无助于减少幼儿园级别的“问题”的数量。
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2581
地点:美国纽约

发布发表于:2021年1月28日,星期四7:47 am
引用回复

我不同意,但我有时间尝试。为了获得每个字之间的字节空间,需要做一个小的更改,我将其留给TS来处理。顺便说一句,每个人都有自己的能力和时间来学习,不要着急。
回到顶部
查看用户资料 发送私信
穆拉利·安达鲁里

新的用户


已加入:2013年6月7日
帖子:23
地点:美国

发布发表:2021年1月28日星期四11:08上午
引用回复

您好Sergeyken,

请不要以为我们在发布信息时没有做出任何努力。

Joinkey具有两个输入的限制。
我也尝试了ICETOOL,但未获得所需的输出,可能是我做错了。

我的要求并不像我发布的那么简单,我发布了这个示例,因为使用此示例我可以实现它。

我们大约有20个db2卸载文件。我们将所有这些卸载文件组合在一个键上,并创建单记录并准备单个卸载文件。
文件准备好后,计划将同一文件加载到新的主表中。

无论如何,非常感谢您的所有回复。
将尝试所有并选择最佳的一个。
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2581
地点:美国纽约

发布发表:2021年1月28日星期四上午11:19
引用回复

我提供的那一个应该工作,祝你好运!

顺便说一句,您可以使用所有20个表编写一个大的select并同时将select串联起来,而且易于维护,为什么要使用DFSORT。您可以考虑一下。
回到顶部
查看用户资料 发送私信
穆拉利·安达鲁里

新的用户


已加入:2013年6月7日
帖子:23
地点:美国

发布发表:2021年1月28日星期四12:21 pm
引用回复

罗希特(Hi Rohit),

我没有使用select,因为我在加载到新表中之前正在格式化数据。

顺便说一句,我尝试了您的解决方案,但我没有得到想要的输出。我不确定我做错了什么。下面是我的代码和输出。

码:
// S001     EXEC PGM=ICETOOL   
//合并    DD SYSOUT = *         
//工具  DD SYSOUT = *         
// DFSMSG   DD SYSOUT=*         
// IN1       DD *               
111印度                       
222澳大利亚                   
333德国                     
444美国                         
/*                             
// IN2       DD *               
111德里                       
222堪培拉                   
444华盛顿                 
/*                             
// IN3       DD *                                                     
111金                                                               
222钻石                                                             
333银                                                             
第444章                                                           
// T1          DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)
//输出         DD SYSOUT=*                                             
// TOOLIN DD *                                                         
从复制(IN1) TO(T1)                                                 
从复制(IN2) TO(T1) USING(CTL2)                                     
从复制(IN3) TO(T1) USING(CTL3)                                     
来自(T1) TO(OUT) ON(1,3,CH)与任何人保持联系-               
  WITH(21,20) WITH(41,20) USING(CTL4)                                 
// CTL2CNTL DD *                                                       
  INREC BUILD=(1,3,21:4,20)                                           
// CTL3CNTL DD *                                                       
  INREC BUILD=(1,3,41:4,20)                                           
// CTL4CNTL DD *                                 
 OUTFILE REMOVECC,BUILD =(1,80,SQZ=(SHIFT=LEFT))

输出量:

**************************************数据顶部************** *
111印度                                                     
222澳大利亚                                                 
333德国                                                   
444美国                                                       
**********************************数据底部**************

已编码
回到顶部
查看用户资料 发送私信
穆拉利·安达鲁里

新的用户


已加入:2013年6月7日
帖子:23
地点:美国

发布发表:2021年1月28日星期四7:01 pm
引用回复

罗希特(Hi Rohit),

您的编码工作正常。

谢谢你的帮助。
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2581
地点:美国纽约

发布发表:2021年1月28日,星期四8:13 pm
引用回复

欢迎穆拉利!
代表代码时,请使用代码标签。这将有助于我们所有人更好地理解和看到它。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   该主题已锁定:您无法编辑帖子或回复。 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DFSORT / ICETOOL

 


类似主题
话题 论坛 回覆
没有新帖 选择多个常量记录 DB2 3
没有新帖 比较文件记录计数百分比... DFSORT / ICETOOL 4
没有新帖 比较两个文件以查找位置/日期... 同步排序 2
没有新帖 将文件从PD转换为显示... 同步排序 4
没有新帖 合并两个以上的记录 DFSORT / ICETOOL 15
搜索我们的论坛:


回到顶部