7

~ 100 行を返す汎用モジュール呼び出しから内部テーブルを取得します。のエントリのみが必要なため、行の約 40% は私には関係ありませんPAR1 = "XYZ"。SQL テーブル (透過テーブル) では、

select count(*) from tab where PAR1 = "XYZ" 

有効なエントリの数を取得します。

ドキュメントを見ると、テーブルを反復処理するための READ テーブル構文しか見つかりませんでした。私の現在のアプローチは、基本的にループを持ち、行に必要な値が含まれている場合は増加することです。しかし、これは非常に効率が悪いようです。

私の要件に対するより良いアプローチはありますか?

4

4 に答える 4

8

あなたが正しいと思うことは何でもしてください。約 100 行の場合、実行時に大きな違いが生じることはほとんどありません。私にとっては、この場合、速度よりも安定性の方が重要です。

そうは言っても、これを試すことができます:

LOOP AT lt_my_table TRANSPORTING NO FIELDS WHERE par1 = 'XYZ'.
  ADD 1 TO l_my_counter.
ENDLOOP.
于 2013-08-05T15:31:14.527 に答える