Posted: Thu Dec 06, 2007 11:43 am Post subject: Найти дупликаты записей в таблицы
Здравствуйте!
Создана z-таблица в словаре, в которой допустимы дубликаты записей. Мне нужно вывести отчет, показывающий только повторяющиеся записи. Как это лучше сделать?
Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
Posted: Thu Dec 06, 2007 1:52 pm Post subject:
Я бы сделал так:
1. Создал бы копию внутренней таблицы.
2. Отсортировал бы по нужному критерию оригинал.
3. Перекинул бы данные из оригинала в копию.
4. В цикле по оригиналу в событии AT NEW удалял бы запись из копии по текущему индексу. В итоге, в копии остались бы только дублирующие записи.
Пример:
Code:
DATA: ITAB TYPE TABLE OF SFLIGHT WITH HEADER LINE,
COPY_ITAB TYPE TABLE OF SFLIGHT WITH HEADER LINE.
SELECT * FROM SFLIGHT INTO TABLE ITAB.
SORT ITAB.
COPY_ITAB[] = ITAB[].
LOOP AT ITAB.
AT NEW CARRID.
DELETE COPY_ITAB INDEX SY-TABIX.
ENDAT.
ENDLOOP.
DATA: BEGIN OF it_bkpf OCCURS 0.
INCLUDE STRUCTURE bkpf.
DATA: flag,
END OF it_bkpf.
DATA: wa_prev LIKE it_bkpf.
FIELD-SYMBOLS: <bkpf> LIKE it_bkpf.
SELECT * FROM bkpf UP TO 10 rows INTO CORRESPONDING FIELDS OF TABLE it_bkpf.
SELECT * FROM bkpf UP TO 5 rows APPENDING CORRESPONDING FIELDS OF TABLE it_bkpf.
SELECT * FROM bkpf UP TO 5 rows APPENDING CORRESPONDING FIELDS OF TABLE it_bkpf. "тройной дубликат
SORT it_bkpf.
LOOP AT it_bkpf ASSIGNING <bkpf>.
IF <bkpf> EQ wa_prev.
<bkpf>-flag = 'X'.
ENDIF.
MOVE-CORRESPONDING <bkpf> TO wa_prev. " store prev value
CLEAR wa_prev-flag.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM it_bkpf. "удалим тройные дубликаты
LOOP AT it_bkpf ASSIGNING <bkpf> WHERE flag = 'X'.
WRITE: / <bkpf>.
ENDLOOP.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.