Select查询数据放一个内表,然后在下一条select语句用where语句in 该内表方法(转)

Select查询数据放一个内表,然后在下一条select语句用where语句in 该内表的方法如下:

第一个内表须定义range类型:

 RANGES: it_vbeln FOR lips-vbeln.

然后查询出来的数据要用low

并且需要定义sign和option

并select语句后要用endselect结束。

  SELECT vgbel FROM lips AS a INNER JOIN likp AS b ON a~vbeln = b~vbeln
    INTO it_vbeln-low
    WHERE a~vbeln IN s_vbeln AND b~kunnr IN s_kunnr AND  a~erdat IN s_audat AND a~ernam IN s_ernam.

    it_vbeln-sign 'I'.
    it_vbeln-option 'EQ'.
    APPEND it_vbeln.
  ENDSELECT.

这样下面的select语句就可以in 这个range了。

  IF it_vbeln[] IS NOT INITIAL.
    SELECT a~vkorg a~audat a~vbeln a~kunnr a~bname a~telf1 a~ernam b~bstkd b~bsark
      a~knumv a~vbtyp a~auart c~fksak a~zprt b~bstdk a~lifsk
      INTO CORRESPONDING FIELDS OF TABLE gtd_out
      FROM vbak AS a INNER JOIN vbkd AS b ON a~vbeln = b~vbeln
      INNER JOIN vbuk AS ON a~vbeln c~vbeln
      WHERE a~vkorg IN s_vkorg AND a~vbeln IN it_vbeln "AND b~bstkd IN s_bstkd
        AND kunnr IN s_kunnr AND ernam IN s_ernam.
  ENDIF.


原文:https://blog.csdn.net/yuqinying112/article/details/38706795

posted @ 2019-03-04 13:55  不渡之人  阅读(1007)  评论(0)    收藏  举报