2020-08-23 22:52发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我有一个要求,我必须循环一个内部表(it_final),并使用将it_final的数据与我的 Ztable(zebeln_table)进行比较 选择查询。
如果ztable(zebeln_table)中已经存在数据,则应该跳过它。 否则,我将对该数据进行一些操作。
我在循环内开发了 select查询,这是编码标准不接受的。
希望您能理解要求。
谢谢。
您好 Dinesh Kumar ,
不建议您使用这种方法,因为它会严重影响性能。 相反,建议您遵循以下步骤:
1)在您的自定义表上为内部表中的所有条目编写一个选择查询。 使用FOR ALL ENTRIES编写查询之前,建议您也执行以下操作。
a)检查表是否不为空
b)排序并确保所有重复项
2)对内部表进行排序,该表具有根据键字段在上面获取的条目。
3)在循环内部,您可以使用read 通过使用"关键字段"来声明。
这将确保更好的性能并满足编码标准。
注意!
不推荐 ,出于同样的原因,SELECT ..... END OF SELECT。 不应使用:
从数据库中选择大型数据集后,您需要注意的事情是 是否应该通过主键或辅助键访问这些内部表,如果只需要单次迭代中的某些记录(否则您将再次在一定程度上降低性能)。
Hi Dinesh ,
是的,在循环内进行选择查询是不可接受的。
1。 只需在循环前从Z表获取内部表中所有条目的必填字段即可。
2。 然后,内部循环读取上面获取的Z表的数据,然后根据需要进行操作。
关于, Mohit Sharma
请分享您的代码
嗨Dinesh
您可以使用所有条目在循环之前获取数据,然后可以使用内部循环读取。
例如, 如果it_final不是初始的 选择field1 field2 ... fieldn 来自Zebeln_table 到表it_zebelntbl 对于it_final中的所有条目 其中field1 = it_final-field1。 万一。 在it_final循环到wa_final。 用键读取表it_zebelntbl。 *如果存在数据 如果sy-subrc = 0。 *如果不存在数据 其他。 万一 Endloop。
谢谢
古纳
但是Dinesh,从这个问题的开头您要引用的选择查询在哪里?
最多设置5个标签!
您好 Dinesh Kumar ,
不建议您使用这种方法,因为它会严重影响性能。 相反,建议您遵循以下步骤:
1)在您的自定义表上为内部表中的所有条目编写一个选择查询。 使用FOR ALL ENTRIES编写查询之前,建议您也执行以下操作。
a)检查表是否不为空
b)排序并确保所有重复项
2)对内部表进行排序,该表具有根据键字段在上面获取的条目。
3)在循环内部,您可以使用read 通过使用"关键字段"来声明。
这将确保更好的性能并满足编码标准。
注意!
不推荐 ,出于同样的原因,SELECT ..... END OF SELECT。 不应使用:
从数据库中选择大型数据集后,您需要注意的事情是 是否应该通过主键或辅助键访问这些内部表,如果只需要单次迭代中的某些记录(否则您将再次在一定程度上降低性能)。
Hi Dinesh ,
是的,在循环内进行选择查询是不可接受的。
1。 只需在循环前从Z表获取内部表中所有条目的必填字段即可。
2。 然后,内部循环读取上面获取的Z表的数据,然后根据需要进行操作。
关于,
Mohit Sharma
请分享您的代码
嗨Dinesh
您可以使用所有条目在循环之前获取数据,然后可以使用内部循环读取。
谢谢
古纳
但是Dinesh,从这个问题的开头您要引用的选择查询在哪里?
一周热门 更多>