Löschen von fast indentischen Einträgen in einer internen Tabelle

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Löschen von fast indentischen Einträgen in einer internen Tabelle

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Guten Tag,

man hat ja mit
DELETE ADJACENT DUPLICATES FROM lt_obj COMPARING objid.

die Möglichkeit Duplikate zu löschen, wenn die Spalte objid folgende Einträge hat:

7867524
7867524

Wie ist es, wenn man folgenden Eintrag in einer Spalte hat. Also nur die Mitte identisch ist:
0A W 47112345 11
0A W 47112345 22

hier sollte dann eine Zeile gelöscht werden.

Viele Grüße
Kaim

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Löschen von fast indentischen Einträgen in einer internen Tabelle

Beitrag von qyurryus (Specialist / 107 / 81 / 45 ) »
Man könnte beim "COMPARING"-Zusatz das Feld mit einem Offset + Länge einschränken (Voraussetzung natürlich eine sortierte Tabelle), Beispiel:

Code: Alles auswählen.

TYPES ty_objid_t TYPE STANDARD TABLE OF name1 WITH DEFAULT KEY.
DATA(test) = VALUE ty_objid_t(
  ( |0A W 47112345 11| )
  ( |0A W 47112345 11| )
  ( |1A W 47112345 22| )
  ( |1A W 471| ) ).
  
  " vergleicht stelle 1-13, also z.B. den Teil 0A W 47112345
  DELETE ADJACENT DUPLICATES FROM test COMPARING table_line(13).
  " Ergebnis:
  " ( |0A W 47112345 11| )
  " ( |1A W 47112345 22| )
  " ( |1A W 471| ) ).

  " vergleicht "Mittelteil" 47112345
  DELETE ADJACENT DUPLICATES FROM test COMPARING table_line+5(8). 
  " Ergebnis:
  " ( |0A W 47112345 11| )
  " ( |1A W 471| ) ).

Re: Löschen von fast indentischen Einträgen in einer internen Tabelle

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Funktionieren Offsetangaben denn beim COMPARING-Zusatz? Ich habe es nie versucht, aber es würde mich überraschen.

Ansonsten kann man auch auf den DELETE ADJACENT DUPLICATES verzichten und es "zu Fuß" machen.

Code: Alles auswählen.

LOOP AT tabelle ASSIGNING FIELD-SYMBOL(<tabelle>) FROM 2.
  ASSIGN tabelle[ sy-tabix - 1 ] TO FIELD-SYMBOL(<vorige_zeile>).
  CHECK <tabelle>-spalte+5(10) = <vorige_zeile>-spalte+5(10).
  DELETE tabelle.
ENDLOOP.

Re: Löschen von fast indentischen Einträgen in einer internen Tabelle

Beitrag von qyurryus (Specialist / 107 / 81 / 45 ) »
DeathAndPain hat geschrieben:
30.06.2020 16:00
Funktionieren Offsetangaben denn beim COMPARING-Zusatz? Ich habe es nie versucht, aber es würde mich überraschen.
Ich war mir auch nicht sicher - habe mir deshalb den Beispielfall gebaut in dem es tatsächlich funktioniert.

Folgende Benutzer bedankten sich beim Autor qyurryus für den Beitrag:
DeathAndPain


Re: Löschen von fast indentischen Einträgen in einer internen Tabelle

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Nun ja, dann hat er jetzt zwei funktionierende Alternativen. 😊

Seite 1 von 1

Vergleichbare Themen

6
Antw.
2305
Views
Suche nach gleichartigen Einträgen in einer internen Tabelle
von balkusan » 19.01.2017 16:45 • Verfasst in ABAP® Core
10
Antw.
10594
Views
Spalten einer internen Tabelle löschen
von dEr_BuMaN » 27.06.2007 21:33 • Verfasst in ABAP® für Anfänger
8
Antw.
4811
Views
Feld einer internen Tabelle dynamisch löschen
von Hagbard » 16.08.2005 15:28 • Verfasst in ABAP® für Anfänger
8
Antw.
4167
Views
Löschen von Einträgen in einer Customizingtabelle
von LyNx » 10.06.2008 11:25 • Verfasst in ABAP® für Anfänger
1
Antw.
271
Views
SELECT-FROM-Befehl und Löschen von Einträgen
von lr_1504 » 10.01.2020 16:53 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141