点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我只想问一下如何计算内部表中的重复项。 我想要这样做,以便让我按posnr计数,并将其放入posnr计数列。
假设it_outtab是一个内部表,其中包含vbeln,posnr和posnr_count列。 最初,表条目如下所示。
但是该程序没有出错,可以帮帮我吗?
在it_outtab处将LOOP放入INTO wa_outtab中。 在vbeln结束时。 和。 将对应的wa_outtab移动到wa_extd。 将wa_extd附加到it_extd。 清除wa_extd。 ENDAT。 结局。 通过vbeln排序it_extd。 循环至it_outtab分配。 清除wa_extd。 读取表it_extd INTO wa_extd WITH KEY vbeln = -vbeln 二进制搜索。 如果sy-subrc是INITIAL。 -count = wa_extd-count。 万一。 ENDLOOP。
首先,对于您的计数问题,可以使用GROUP BY轻松处理它,如下所示:
第二,如果您要计算文档中有多少个订单项,为什么不获得posnr的最大值,因为它会为每个新订单项增加1,例如:
1)您正在使用过时的ABAP。 SUM已过时
2)末尾等已被GROUP BY取代。
3) fs的意义是什么-它具有<和>使其明显成为字段符号,因此尽管SAP和DSAG的最新ABAP准则均不鼓励表示 类型。
4)18年来,SORT的使用和随后的READ BINARY SEARCH的使用一直不必要地变得复杂。 使用SORTED表或HASHED表进行快速访问。
5)粘贴代码时,请使用编辑器中的CODE按钮。 如果粘贴ABAP; 使用右键单击粘贴为纯文本。 这次我为您做了。
嗨,
尝试
使用其他类型为int的字段创建新的内部表。 用字段对内部表进行排序。
将itab循环到wa ..
wa-count ='1'。
清除wa-posnr。
将wa收集到itab1中。
endloop。
希望对您有所帮助,
此致
Venkat。
我会选择 Binh Thai 的答案。 因为在 Quynh Doan Man 的答案中,我们使用了嵌套循环,这可能会影响 性能。 但是,不要使用new或任何东西,而要使用普通变量和一些条件。
嗨,Tika,尝试下面的逻辑示例。 问候
我将按我要计算的键对IT进行排序。 然后循环播放。 在新键处,重置计数值,在结束键处,将计数值移动到另一个保持器。 例如。 我将计算VBELN,然后按如下所示进行操作。
通过VBELN升序排序ITAB。
将ITAB推入WA。
在NEW VBELN。 COUNTER =0。ENDAT。
COUNTER = COUNTER + 1.
在VBELN末尾。 WA_RESULT-VBELN = WA-VBELN。 WA_RESULT-COUNTER = COUNTER。 将WA_RESULT附加到ITAB_RESULT。 ENDAT。
ENDLOOP。
一周热门 更多>