1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ABAP】「FOR ALL ENTRIES」使い方解説

Last updated at Posted at 2022-05-17

目次

  1. FOR ALL ENTRIES概要
  2. 使い方
  3. 注意事項

1. FOR ALL ENTRIES概要

FOR ALL ENTRIESを追加したSELECT命令では、WHERE条件に、指定した内部テーブルの項目値を使用できるようになる。

2. 使い方

サンプルコード
*-----------------------------------------------------------------
*メイン内部テーブル
DATA IT_SAMPLE TYPE TA_IT_SMPLE.

*FOR ALL ENTRIES用に内部テーブルを複製
DATA IT_SAMPLE2 TYPE TA_IT_SAMPLE.
IT_SAMPLE2 = IT_SAMPLE.

*FOR ALL ENTRIS用の内部テーブルをソート
SORT IT_SAMPLE2 BY (項目名) ASCENDING.

*複製した内部テーブルから項目をキーに重複を削除
DELETE ADJACENT DUPLICATES FROM IT_SAMPLE COMPARING (項目名).

※データ抽出
IF IT_SAMPLE2 IS NOT INITIAL.
  SELECT
    (項目1)
    (項目2)
  FROM  テーブル名
  INTO TABLE 格納したい内部テーブル
  FOR ALL ENTRIES IN IT_SAMPLE2
  WHERE MAKT~MATNR = IT_SAMPLE2-(項目名)
  AND   SPRAS = SY-LANGU.

ENDIF.
*-----------------------------------------------------------------

3. 注意事項

①内部テーブルを直接編集しない(内部テーブルを複製する)。

②複製した内部テーブルは必ずソートする(重複を削除するためにソートする必要がある)。

③重複を必ず削除する。

④データ抽出時する前に内部テーブルにデータが入っているか確認。

⑤パフォーマンス向上のためにBINARY SEARCHを使用する。

⑥ORDER BYと同時に指定することはできない。

<補足>
・BINARY SEARCHとは
二分検索のこと。
ソートテーブルの場合と同様に、キーを使用して高速に
テーブル内のレコードにアクセスすることができる。
※データがソートされている場合のみ使用可

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?