2、如果是对部分连续的数据读取,建议使用SORTED TABLE(如:LOOP AT sorted_itab WHERE key = value) 3、如果是在循环某大型内表itab2时通过READ读取itab1的数据,可以把itab1构建为SORTED/HASHED TABLE(根据前两条的说明,自行选择构建SORTED或HASHED TABLE),再通过READ读取构建后的SORTED/HASHED TABLE,甚至可节约...
LOOP AT lt_a INTO lw_a. READ TABLE lt_b_h INTO lw_b_h WITH TABLE KEY f1 = lw_a-f1. LOOP AT lw_b_h-items INTO lw_items. CLEAR lw_c. lw_c-f1 = lw_a-f1. lw_c-f2 = lw_a-f2. lw_c-f3 = lw_items-f3. APPEND lw_c TO lt_c. ENDLOOP. ENDLOOP. GET RUN TIME ...
2. 在循环(LOOP AT ...WHERE..)或查询(READ TABLE ...)某内表时,如果未使用索引(排序表、哈希表)或二分查找,则在查询组合字段创建第二索引,查询时通过USE KEY或WITH [TABLE] KEY选项使用第二索引,这样在查询时会自动进行二分查找或哈希找查 在没有用二分查找的情况下,可在查询组合字段上创建第二索引(...
ENDIF. ENDLOOP. 不使用SY-INDEX,自行调整SUM和EXIT条件 点击查看代码 DATAsumTYPE i. LOOP AT lt_adrc INTO DATA(ls_adrc). READ TABLE it_kna1 ASSIGNING FIELD-SYMBOL(<it_kna1>) WITH KEY kunnr = ls_adrc-kunnr BINARY SEARCH. IF sy-subrc EQ 0."不使用sy-index,自行调整SUM和EXIT条件 "sum...
ENDLOOP. LOOP AT itable1 Where F1 ≥ 3. itable1-F1 = -78. INSERT itable1. ENDLOOP. Skip. LOOP AT itable1. Write / itable1-F1. ENDLOOP. 上面的代码产生以下输出: 1 96- 2 3 4 1 96- 2 78- 3 78-
3 在ABAP开发过程中,将查询出的所有数据放到临时表 lt_msegc 中,再对该表中的数据进行排序除了数量、金额之外,其它都要写在排序中Sort lt_msegc ASCENDING BY 字段1 字段2 字段3 ……4 然后LOOP AT lt_msegc INTO lw_msegc.5 在loop 中写 SUM 函数除了数量、金额之外,把其它的赋值先写完lw_mseg-...
SELECT*FROMsflightINTOTABLE@DATA(gt_sflight)WHEREprice<2000.LOOPATgt_sflightINTODATA(gs_sflight).WRITE:/gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.ENDLOOP. 该段代码使用"<"运算符,检索出了SFLIGHT数据库表中所有price小于2000的数据。
•LOOP AT:将内部表的数据逐行读到工作区中 •READ TABLE:将内部表的某一特定行的数据读到工作区中 •SORT:对内部进行排序 •CLEAR:清除工作区的内容 •REFRESH:删除内部表中的所有记录 系统变量SY-TABIX可以表示内部表当前所在行 2 数据库查询逻辑 ...
•LOOP AT:将内部表的数据逐行读到工作区中 •READ TABLE:将内部表的某一特定行的数据读到工作区中 •SORT:对内部进行排序 •CLEAR:清除工作区的内容 •REFRESH:删除内部表中的所有记录 系统变量SY-TABIX可以表示内部表当前所在行 2 数据库查询逻辑 ...
SELECT*FROMsflightINTOTABLE@DATA(gt_sflight)WHEREcarrid='AC'ANDprice=2500.LOOPAT gt_sflightINTODATA(gs_sflight).WRITE:/gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.ENDLOOP. 该段代码使用"AND"逻辑运算符,检索出了SFLIGHT数据库表中所有carrid等于'AC'和price等于2500的数据。