查询内表是否存在两个字段值相同的行
WITH +makt( matnr, matnr1, maktx ) AS
( SELECT matnr,
matnr AS matnr1,
maktx FROM @lt_makt as a )
SELECT FROM +makt AS a
FIELDS a~matnr
WHERE EXISTS ( SELECT matnr FROM +makt WHERE matnr = a~matnr1 )
INTO TABLE @DATA(lt_data6)
UP TO 6 ROWS.
BREAK-POINT.
TYPES: BEGIN OF ty_row,
field1 TYPE c LENGTH 10,
field2 TYPE c LENGTH 10,
END OF ty_row.
DATA: itab TYPE TABLE OF ty_row,
lv_found TYPE abap_bool.
APPEND INITIAL LINE TO itab ASSIGNING FIELD-SYMBOL(<fs_line>).
<fs_line>-field1 = 'value1'.
<fs_line>-field2 = 'value1'.
SELECT field1,
CASE field1
WHEN field2 THEN 'X' END AS flag
FROM @itab AS a
INTO TABLE @DATA(lt_itab).
DELETE lt_itab WHERE flag = 'X'.
BREAK-POINT.