点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经声明了一个内部表,例如 ...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经声明了一个内部表,例如 ...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我已经声明了一个内部表,例如
数据:wa_collectoraction TYPE zcollectoraction, it_collectoraction类似于zcollectoraction的标准表。
我们有以下记录:
200-1000-620-201708-20170819-20170819121212.356 ................................. ............
200-1000-620-201708-20170819-20170819121211.356 .................................... .....
200-1000-620-201708-20170815-20170815121211.31.3 .................................... ......
200-1000-620-201707-20170710-20170710121200.356 ................................. ......
200-1000-620-201707-20170710-20170710121100.356 .................................... ......
200-1000-620-201707-20170709-20170709121100.356 .................................... ......
然后我用以下2条记录填充表格
200-1000-620-201708-20170819
200-1000-620-201707-20170710
选择bukrs kunnr yearmonth MAX(dat)AS dat 来自zcollectoraction 到表it_collectoraction的对应字段 so_bukrs在哪里以及 kunnr IN so_kunnr AND 日期 GROUP BY Bukrs kunnr yearmonth。
最后,我进入了以下循环,获取每个记录的最长时间,然后使用关键字段获取记录的所有剩余字段。
在it_collectoraction INTO wa_collectoraction中循环。 PERFORM progress_bar使用"正在检索数据..."(035) sy-tabix i_tab_lines。 "为所有线路获取最大时间,以解决我们有多于一条线路的情况。 选择单*从zcollectoraction wa_collectoraction的相应领域 其中bukrs = wa_collectoraction-bukrs并且 kunnr = wa_collectoraction-kunnr AND dat = wa_collectoraction-dat和 时间=(SELECT MAX(时间)AS时间 来自zcollectoraction 其中bukrs = wa_collectoraction-bukrs并且 kunnr = wa_collectoraction-kunnr AND dat = wa_collectoraction-dat)。 从wa_collectoraction修改it_collectoraction。 ENDLOOP。
此循环执行5分钟,记录3000条记录。 循环的itab拥有30500条记录。
我希望自己变得更加清晰。
有人可以告诉我怎么做才能更快?
预先感谢
我明白了,但是您实际上想要实现什么? 我们不知道该表格数据来自何处,我们唯一知道的是一些自定义设置。
通过退一步,我的意思是查看业务场景和表格。 您上面描述的逻辑,表格和示例相互矛盾。 也许那是我的解释。 修改后的示例显示了一个包含日期的时间戳类型字段,那么为什么不立即选择max()呢? 该选择不进行时间的条件查找-您的示例中没有逻辑来确定同一日期是否存在一个或多个记录("如果该最大日期存在多个记录,则...")
一周热门 更多>