SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

DELETE



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
tdebug
Участник
Участник



Joined: 26 Feb 2009
Posts: 6

PostPosted: Wed Jun 10, 2009 4:28 pm    Post subject: DELETE Reply with quote

Есть две таблицы, первая 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?
Back to top
View user's profile Send private message
YuriT
Участник
Участник



Joined: 03 Nov 2008
Posts: 35

PostPosted: Wed Jun 10, 2009 4:51 pm    Post subject: Reply with quote

Попробуй LEFT OUTER JOIN еще в момент выборки

что-то типа:

Code:

      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.

DELETE lt_results2 WHERE matnr2 IS INITIAL.
Back to top
View user's profile Send private message
tdebug
Участник
Участник



Joined: 26 Feb 2009
Posts: 6

PostPosted: Wed Jun 10, 2009 4:54 pm    Post subject: Reply with quote

Так в SOURCE_PACKAGE выбираю ведь не я. Мне оттуда нужно удалить по условию, где условие это не нахождение записей с таким же ключём в другой таблице. Таблицы обе внутренние..
Back to top
View user's profile Send private message
YuriT
Участник
Участник



Joined: 03 Nov 2008
Posts: 35

PostPosted: Wed Jun 10, 2009 5:57 pm    Post subject: Reply with quote

Если нет проблем с ключем, можно использовать 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.

     CHECK sy-subrc IS NOT INITIAL.

     DELETE gt_dd03l_st.

ENDLOOP.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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.