【ABAP】7.4で拡張された内部テーブルの条件指定やインデックス指定をSELECTのWHEREで使用する USING INTERNAL TABLE SELECTION ENHANCED FROM ABAP 7.4 IN SELECT WHERE CONDITIONS
SELECT文で、7.4で拡張された内部テーブルの値の取り方や インデックス指定を使って検索条件を作ってみました。 条件を満たすデータが複数件あった場合はどうなる・・・?
TYPES: BEGIN OF typ_str, field1 TYPE char10, field2 TYPE auart, field3 TYPE char10, END OF typ_str, ttyp_str TYPE TABLE OF typ_str WITH KEY field1. DATA: str TYPE ttyp_str. DATA: var1 TYPE char10 VALUE 'VARIABLES'. str = VALUE #( ( field1 = 10 field2 = 'OR' field3 = 30 ) ( field1 = 20 field2 = 'OR1' field3 = 60 ) ( field1 = 30 field2 = 'ZOR' field3 = 90 ) ). DATA(read_line) = lines( str ). "データ件数を取得 SELECT FROM vbak AS t1 FIELDS 'LITERAL' AS lit, @var1 AS var1, auart, vbeln, erdat, @( VALUE vbak-erdat( ) ) AS erdat2, "初期値 erzet, @( VALUE vbak-erzet( ) ) AS erzet2 "初期値 * where auart = @( value vbak-auart( str[ field1 = 10 ]-field2 ) ) "field1=10の条件を満たすfield2値 WHERE auart = @( VALUE vbak-auart( str[ read_line ]-field2 ) ) "3件目のfield2の値 INTO TABLE @DATA(results). cl_demo_output=>display( results ).