108 のエントリで満たされた内部テーブルがあります。9 から 9 のエントリでエントリが繰り返されているため、それらの重複を削除したいと考えていました。それらはまったく同じなので、 を使用しましたdelete adjacent duplicates from itab comparing all fields
。なしでも試してみcomparing all fields
ました。失敗。
私のテーブルには、bukrs、hkont、gjahr、belnr、budat、waers、shkzg、wrbtr、dmbtr、dmbe2 の 9 つのフィールドがあります。彼らは BSIS から来ており、この順序でもあります。これはDO
SELECT があるループenter code here
です。ループのDELETE
外側をパットしました。DO
最初の 2 つSELECT
の は正常に機能しており、以前に存在したコードに属しています。
DO 12 TIMES.
lv_aux = lv_aux + 1.
lv_tamanho = STRLEN( lv_aux ).
IF lv_tamanho = 1.
CONCATENATE '0' lv_aux INTO lv_aux.
ENDIF.
CONCATENATE p_gjahr lv_aux '01' INTO z_v_first_day.
PERFORM get_last_day_of_month USING z_v_first_day
CHANGING lv_last_day.
" some other code irrelevant to the issue
SELECT bukrs hkont gjahr belnr budat waers shkzg dmbtr wrbtr dmbe2 FROM bsis
APPENDING CORRESPONDING FIELDS OF TABLE gt_bancbsis
WHERE hkont = '0051100001'
AND bukrs EQ p_bukrs
AND budat <= lv_last_day.
" some other code irrelevant to the issue
ENDDO.
DELETE ADJACENT DUPLICATES FROM gt_bancbsis COMPARING ALL FIELDS.
ダバガーの内部テーブル gt_bancbsis の写真です。