2

一方のテーブルの属性がもう一方のテーブルと同じであるという条件を使用して、ループスルーに問題があります。よりよく説明するために、私はコードを過ぎます。難しいことではありませんが、どこを間違えたのかわかりません。

LOOP AT gt_spfli INTO wa_spfli.
  AT NEW carrid.
    WRITE:/ wa_spfli-carrid.
  ENDAT.
  LOOP AT gt_sflight INTO wa_sflight WHERE carrid EQ wa_sflight-carrid.
    WRITE:/ wa_sflight-carrid,
            wa_sflight-connid,
            wa_sflight-price.
  ENDLOOP.

  ULINE.
  ENDLOOP.

spfliのすべてのcarridについて、そのcarridに含まれるsflightを表示したいと思います。ただし、wa_spfli-carridのみを書き込みます。2回目の書き込みにはなりません。デバッグを行うと、wa_sflightが常に空になっていることがわかります。(または決してそれに到達しません)gt_sflightとgt_spfliが設定されているので、問題はどこから発生しますか?「carridEQwa_sflight-carrid」が機能する場所を削除すると...しかし、画面に表示したいものではありません。

追加情報(有用かどうかはわかりません):gt_spfliおよびgt_sflightは、自分で作成した汎用モジュールを介して入力されます。

4

1 に答える 1

7

内側のループでは、carridをwa_sflight-carridではなくwa_spfli-carrid(外側のループから取得)と比較する必要があります。

于 2012-01-05T17:55:51.490 に答える