Test 1

DATA: lt_1 TYPE TABLE OF zspfli_tc .
DATA: ls_1 TYPE zspfli_tc.

TYPES: BEGIN OF lt_bkpf ,
         bukrs TYPE bkpf-bukrs,
         belnr TYPE bkpf-belnr,
         gjahr TYPE bkpf-gjahr,
         stblg TYPE bkpf-stblg,
       END OF lt_bkpf.

DATA: lt_2 TYPE TABLE OF lt_bkpf,
      ls_2 TYPE lt_bkpf.

FIELD-SYMBOLS: <ls_1> TYPE zspfli_tc,
               <ls_2> TYPE lt_bkpf.

SELECT carrid
       connid
       fldate
       price
       currency
       belnr1
       belnr2
       budat1
       budat2
  FROM zspfli_tc
  INTO CORRESPONDING FIELDS OF TABLE lt_1.
SORT lt_1 BY carrid connid fldate.

IF lt_1 IS NOT INITIAL.
  SELECT bukrs
         belnr
         gjahr
         stblg
    FROM bkpf
    INTO CORRESPONDING FIELDS OF TABLE lt_2
    FOR ALL ENTRIES IN lt_1
    WHERE ( bukrs = '1710'
      AND   belnr = lt_1-belnr1
      AND   gjahr = lt_1-budat1+0(4) )
       OR ( bukrs = '1710'
      AND   belnr = lt_1-belnr2
      AND   gjahr = lt_1-budat2+0(4) ).
ENDIF.
SORT lt_2 by belnr gjahr.
LOOP AT  lt_1 ASSIGNING <ls_1>.
  READ TABLE lt_2 ASSIGNING <ls_2> WITH KEY belnr = <ls_1>-belnr1
                                            gjahr = <ls_1>-budat1+0(4)
                                            BINARY SEARCH.
  IF sy-subrc = 0.
    IF <ls_2>-stblg <> ''.
      DELETE TABLE lt_1 FROM <ls_1>.
      CONTINUE.
    ENDIF.
  ENDIF.

  READ TABLE lt_2 ASSIGNING <ls_2> WITH KEY belnr = <ls_1>-belnr2
                                            gjahr = <ls_1>-budat2+0(4).
  IF sy-subrc = 0.
    IF <ls_2>-stblg <> ''.
      DELETE TABLE  lt_1 FROM <ls_1>.
    ENDIF.
  ENDIF.
ENDLOOP.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值