Posted: Wed Jun 10, 2009 4:28 pm Post subject: DELETE
Есть две таблицы, первая SOURCE_PACKAGE и объявлена соотв. как TYPE STANDARD TABLE OF _ty_s_SC_1 WITH NON-UNIQUE DEFAULT KEY.
Вторая tab2 объявлена просто как TYPE SORTED TABLE OF DB_TABLE WITH UNIQUE KEY field1 field2 field3 field4.
Таблицы в принципе совпадают и ключи у них одинаковы, но в tab2 на несколько полей больше.
Как наиболее оптимально удалить записи из SOURCE_PACKAGE, записи которые не содержаться в tab2?
SELECT a~matnr a~subid a~laiso a~kunnr a~ztradename a~zmatapplli b~matnr AS matnr2
FROM zsdtradename AS a LEFT JOIN zsdtradenamerest AS b
ON a~matnr = b~matnr AND
a~subid = b~subid AND
a~laiso = b~laiso AND
a~kunnr = b~kunnr AND
a~ztradename = b~ztradename AND
a~zmatapplli = b~zmatapplli
INTO CORRESPONDING FIELDS OF TABLE lt_results2.
Так в SOURCE_PACKAGE выбираю ведь не я. Мне оттуда нужно удалить по условию, где условие это не нахождение записей с таким же ключём в другой таблице. Таблицы обе внутренние..
Если нет проблем с ключем, можно использовать HASHED TABLE. Вот пример. Здесь миллион записей в лупе обрабатываются где-то за 4 секунды. Думаю в вашем примере объем поменьше.
Code:
REPORT ytest.
DATA: gt_dd03l_st TYPE STANDARD TABLE OF dd03l WITH NON-UNIQUE DEFAULT KEY,
gt_dd03l_so TYPE SORTED TABLE OF dd03l WITH UNIQUE KEY tabname fieldname as4local as4vers position,
gt_dd03l_ha TYPE HASHED TABLE OF dd03l WITH UNIQUE KEY tabname fieldname as4local as4vers position.
FIELD-SYMBOLS: <fw_dd03l> TYPE dd03l.
SELECT *
FROM dd03l
INTO TABLE gt_dd03l_st
UP TO 1000000 ROWS.
gt_dd03l_so = gt_dd03l_st.
DELETE gt_dd03l_so FROM 2 TO 5.
*До этого места воссоздали ситуацию из примера. Дальше обрабатываем
gt_dd03l_ha = gt_dd03l_so.
LOOP AT gt_dd03l_st ASSIGNING <fw_dd03l>.
READ TABLE gt_dd03l_ha
WITH TABLE KEY tabname = <fw_dd03l>-tabname
fieldname = <fw_dd03l>-fieldname
as4local = <fw_dd03l>-as4local
as4vers = <fw_dd03l>-as4vers
position = <fw_dd03l>-position
TRANSPORTING NO FIELDS.
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.