Suche nach gleichartigen Einträgen in einer internen Tabelle

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Suche nach gleichartigen Einträgen in einer internen Tabelle

Beitrag von balkusan (ForumUser / 1 / 1 / 0 ) »
Hallo Forum,

folgende Aufgabenstellung:
interne Tabelle mit 7 Spalten F1 bis F7 und n Einträgen. Die Unterschiede sind F5 mit einem Integer, F6 mit Wert abap_true oder false und Attribut F7; F1 - F4 sind gleich.
Wie kann ich mit möglichst wenig Code herausbekommen ob bei gleichem Wert F5 genau ein Satz in F6 den Wert abap_true hat?
(Die Beispiele wegen der Formatierung als CODE)

Code: Alles auswählen.

Beispiele:
F1 F2 F3 F4 F5 F6 F7
A  B  C  D  7     M
A  B  C  D  7  X  E <- gesuchter Wert

oder:
F1 F2 F3 F4 F5 F6 F7
A  B  C  D  7     M
A  B  C  D  7  X  E <- gesuchter Wert
A  B  C  D  7     P

oder:
F1 F2 F3 F4 F5 F6 F7
A  B  C  D  7     M
A  B  C  D  7  X  E <- gesuchte Werte
A  B  C  D  7     P
A  B  C  D  7     R
A  B  C  D  8  X  C <- gesuchte Werte
A  B  C  D  8     V
Ich hoffe ich konnte mich verständlich ausdrücken und Danke Euch schon mal für die Unterstützung.
Gruß
Balkusan

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


Re: Suche nach gleichartigen Einträgen in einer internen Tab

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »

Code: Alles auswählen.

SORT itab BY f1 f2 f2 f3 f4 f5. "stabile Sortierung für AT-Verarbeitung

LOOP AT itab ASSINGING <itab_zeile>. "muss FS, bei WA gibt * in den Key-Feldern im AT Block
  AT NEW f5. "neuer Wert in f5
    CLEAR anzahl_abap_true.
    LOOP AT itab TRANSPORTING NO FIELDS "oder was anderes wenn man die Werte braucht
                 FROM sy-tabix  "nur ab der aktuellen Zeile der äußeren LOOP-Schleife
                 WHERE f1 = <itab_zeile>-f1 AND ... AND f5 = <itab_zeile>-f5 AND f6 = 'X'. "nur zum aktuellen key.
      anzahl_abap_true = anzahl_abap_true + 1.
    ENDLOOP.

  IF anzahl_abap_true = 0.
*  keine ABAP_TRUE Sätze für den KEY
  ELSEIF anzahl_abap_true = 1.
* genau ein Satz ABAP_TRUE für den Key
  ELSE.
* mehrere ABAP_TRUE Sätze für einen Key
  ENDIF.
  ENDAT.
ENDLOOP.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
balkusan

Gruß Hendrik

Re: Suche nach gleichartigen Einträgen in einer internen Tab

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Das klingt aber wieder sehr nach "Hausaufgaben".

Falls ja, solltest Du es selber loesen und zwar mit "Collect ... " http://help.sap.com/abapdocu_70/en/ABAPCOLLECT.htm

Ansonsten wirst Du genauso "gut" wie mein Nachbar im aktuellen Projekt, >15 ABAP Erfahrung, aber Qualitaets- und Wissensstand eines Rookies.

Re: Suche nach gleichartigen Einträgen in einer internen Tab

Beitrag von hausi (ForumUser / 56 / 11 / 1 ) »

Code: Alles auswählen.

lt_itab_hilf = lt_itab

LOOP AT lt_itab_hilf INTO ls_itab_hilf
	SELECT *
 	 FROM lt_itab
	 INTO TABLE lt_ergebnisse
	 WHERE f5 = ls_itab_hilf
	  AND  f6 = abap_true.
	IF sy-dbcount > 1.	
	" was auch immer passieren soll wenn du mehr als einen findest
	WRITE lt_ergebnisse.
	ENDIF.
ENDLOOP
Was wäre an meinem Denkansatz dazu falsch?

LG
die Hausi

Re: Suche nach gleichartigen Einträgen in einer internen Tab

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Unter Basis 7.40 gäbe es auch die Möglichkeit das Ganze über LOOP AT mit GROUP BY zu lösen. Da hätte man im group_key bereits einen Zugriff auf die GROUP SIZE für die Zählung.
http://help.sap.com/abapdocu_740/de/aba ... by_key.htm
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Suche nach gleichartigen Einträgen in einer internen Tab

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
hausi hat geschrieben:Was wäre an meinem Denkansatz dazu falsch?
Select auf eine interne Tabelle?

Die Aufgabenstellung ist BTW sehr offen formuliert.
ADTs Ansatz mit COLLECT liefert sicher auch ein brauchbares Ergebnis => Anzahl Sätze je KEY mit/ohne ABAP_TRUE.
Gruß Hendrik

Re: Suche nach gleichartigen Einträgen in einer internen Tab

Beitrag von hausi (ForumUser / 56 / 11 / 1 ) »
JHM hat geschrieben:
hausi hat geschrieben:Was wäre an meinem Denkansatz dazu falsch?
Select auf eine interne Tabelle?

Die Aufgabenstellung ist BTW sehr offen formuliert.
ADTs Ansatz mit COLLECT liefert sicher auch ein brauchbares Ergebnis => Anzahl Sätze je KEY mit/ohne ABAP_TRUE.
Jupp du hast selbstverständlich Recht :o sry bisschen Brain-AFK .... der Select sollte mit einem READ TABLE bei gleichen Bedingungen ersetzt werden - allerdings geht das ja nur INTO eine Struktur.. :roll:

Also meinen Beitrag einfach überlesen :D

LG
die Hausi

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1054
Views
2
Antw.
2273
Views
Währungen eintragen in Tabelle TCURC
von Gast » 20.04.2005 11:45 • Verfasst in Financials
1
Antw.
742
Views
Sichern von Einträgen in einer Tabelle
von kaim77 » 07.05.2014 15:36 • Verfasst in ABAP® Core
2
Antw.
1753
Views
int. Tabelle nach gleichen Einträgen durchsuchen?
von b0rsti » 12.06.2008 15:48 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140