点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有两个内部表IT_ITAB和IT_ZAFS_FI_01。 在IT_ZAFS_FI_01中,有两个范围字段ZFIRAFR和ZFIRATO。 我想为IT_ITAB中的每个RACCT和RFAREA查找IT_ZAFS_FI_01中是否存在RACCT在范围内且RFAREA等于ZFIFUAR的信息。 我有下面的代码。 但是它有错误。 因此,在READ TABLE中的itab较少或之间,因为条件不允许? 我必须使用循环吗? 谢谢。
选择 RACCT 射频区域 左室病毒 插入表IT_ITAB 从FAGLFLEXT RYEAR在哪里= P_YEAR AND RLDNR ='0L' AND RRCTY ='0' AND RBUKRS = P_BUKRS。 通过racct rfarea排序it_itab。 选择 布克 ZFIITEM ZFISUIT ZFITEXT ZFISIGN ZFITYPE 菲拉夫 ZFIRATO ZFIFUAR 零配件 菲菲托 从ZTFI03 表IT_ZAFS_FI_01的对应字段 在哪里BUKRS = P_BUKRS。 循环将IT_ITAB INTO数据(IT_ITAB_1)按(key1 = IT_ITAB_1-racct key2 = IT_ITAB_1-rfarea)分组。 使用键ZFIFUAR = IT_ITAB_l-rfarea ZFIRAFRIT_IT AB_l-racct读取表IT_ZAFS_FI_01。 结局。
嗨,Ricky,
是的,您不能将read与GE,LE等运算符一起使用。 最好改用Loop。
同时支持ENDWHILE和ENDWHILE,您可以选中此。
致谢
jimmy。
ricky luo ,
您不能使用 读取语句中的此类逻辑运算符。 如果您正在读取具有唯一键字段的内部表,则可能在READ语句后可以进行IF条件检查。
建议:为什么不在查询中使用FOR ALL ENTRIES并尝试使用小于条件的条件 使用WHERE关键字。
注意!
您问:少读表itab或之间,因为条件不允许?
是
< p>您问:我必须改用循环吗?是
编辑:如果您的内部表的类型为SORTED(或者是标准+ sort + BINARY,则不是LOOP AT) 搜索),您可以进行大概定位。
示例:
代码:
尝试一下。
一周热门 更多>