ABAP SELECT内表查询

把查询好的内表作为数据库表再次查询

在编辑程序中经常会遇到,查询出来的内表要继续按照条件查找更加精确的数据。
那就可以使用到,把内表作为数据库底表,继续SELECT.
如果向select 多个内表(临时表),可以参考这篇博客select 多个内表(临时表)
源代码

SELECT
     *
    FROM  EKKO
    INTO TABLE @DATA(GT_EKKO)
    WHERE  BUKRS = '1000'  "公司代码为一千
   .
   
   "把gt_ekko作为底表继续查询,但是gt_ekko一定要AS取别名不然语法不通过
SELECT
    EBELN,
    BUKRS,
    LIFNR,
    ERNAM
  FROM @gt_ekko AS K2    
  WHERE ERNAM = 'LIMF'
  INTO TABLE @DATA(gt_ekko2)
  .

 cl_demo_output=>display( gt_ekko2 )."快速窗口输出结果

注意事项
1.当内表作为数据库底表查询时,一定要取别名。
2.当内表作为数据库底表查询时,不能与 FOR ALL ENTRIES IN 一起使用。
3.如果无主键相连,并且数据量巨大,建议使用FOR ALL ENTRIES IN (运行时间会短一些)


版权声明:本文为lmf496891416原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。