‎2006 Oct 05 7:49 PM
Hello friends,
I have 2 internal tables. IT1_knvp and IT2_knvp.
IT1_knvp contains some data which already exists in it2_KNVP. so i want to delete it1_knvp based on it2_knvp kunn2.
Below is the code i am using but it does not work.
LOOP AT it2_knvp.
LOOP AT it1_knvp.
DELETE it1_knvp
where kunn2 = it2_knvp.
ENDLOOP.
ENDLOOP.
Shejal.
‎2006 Oct 05 7:51 PM
‎2006 Oct 05 7:51 PM
‎2006 Oct 05 7:51 PM
Hi,
Please try this.
LOOP AT it2_knvp.
DELETE it1_knvp
where kunn2 = it2_knvp-kunn2.
ENDLOOP.
Regards,
Ferry Lianto
‎2006 Oct 05 7:51 PM
Hi Shejal,
DELETE statement will delete all records which satifies that condition. So need of LOOP..ENDLOOP on IT1_KNVP.
Try with this code.
LOOP AT it2_knvp.
DELETE it1_knvp
where kunn2 = <b>it2_knvp-kunn2</b>.
ENDLOOP.
For better Performance,
SORT IT2_KNVP BY KUNN2.
LOOP AT it2_knvp.
<b>AT NEW KUNN2.</b>
DELETE it1_knvp
where kunn2 = <b>it2_knvp-kunn2</b>.
<b>ENDAT.</b>
ENDLOOP.
Thanks,
Vinay
‎2006 Oct 05 7:52 PM
Hi,
Try this..
LOOP AT IT2_KNVP.
DELETE IT1_KNVP WHERE KUNN2 = IT2_KNVP-KUNN2.
ENDLOOP.
Thanks,
Naren
‎2006 Oct 05 7:56 PM
Assuming there are no more than 1 entry to be deleted from it1_knvp for an entry in it2_knvp, try:
SORT it1_knvp BY kunn2,
it2_knvp by kunn2.
LOOP AT it2_knvp.
READ TABLE it1-knvp1 WITH KEY
kunn2 = it2_knvp-kunn2
BINARY SEARCH.
IF sy-subrc = 0.
DELETE it1_knvp INDEX sy-tabix.
ENDIF.
ENDLOOPRob