SELECT ohne doppelte Einträge zu einem bestimmten Feld

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

SELECT ohne doppelte Einträge zu einem bestimmten Feld

Beitrag von Patrick1982 (ForumUser / 32 / 4 / 0 ) »
Moin,

ich habe folgende Problemstellung:
Und zwar muss ich Daten aus 2 sehr großen Tabellen auslesen, heißt, es sollte so performant wie möglich gestaltet sein.
Dabei nun folgende Herausforderung:

Erster Select aus Tabelle DBTAB_A mit ein paar Bedingungen. Ausgelesen werden mehrere Felder, darunter auch Feld BELNR. Dieser Feldinhalt kann in der Ergebnismenge nun doppelt oder dreifach rauskommen. Also z.B. ergibt mein Select 1 Mio. Ergebnisse, aber nur 400.000 verschiedene Werte in BELNR.
Der zweite Select erfolgt zu einem späteren Zeitpunkt aus Tabelle DBTAB_B mit Schlüsselfeld = BELNR.

Da zwischen den beiden Selects noch allerhand weitere Prüfungen etc. durchlaufen werden, wäre es vermutlich am sinnvollsten, diese Mehrfacheinträge gar nicht erst zu selektieren. Also wenn ein Eintrag zu BELNR = x gefunden wurde, dann alle weiteren Einträge mit BELNR = x ignorieren.
Hat jemand einen Tipp, wie ich das bestmöglich umgesetzt bekomme?

Besten Dank!

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



Re: SELECT ohne doppelte Einträge zu einem bestimmten Feld

Beitrag von Patrick1982 (ForumUser / 32 / 4 / 0 ) »
urmel376 hat geschrieben:
17.04.2024 16:04
DISTINCT
Danke für die ausführliche Antwort.
Das hat aber so nicht funktioniert, weil ich, wie ich schrieb, ja mehrere Felder auslese, und wenn ich dort ein DISTINCT vorsetze, dann bekomme ich eine Zeile pro Kombination dieser Felder. Da sich aber die anderen Felder unterscheiden, nur BELNR eben nicht, funktioniert das nicht. Jedenfalls habe ich es nicht hinbekommen. Falls du anderer Meinung bist, wären ein paar erklärende Worte in einem Anfänger-Forum ganz nett.

Vielen Dank.

Re: SELECT ohne doppelte Einträge zu einem bestimmten Feld

Beitrag von black_adept (Top Expert / 3952 / 105 / 886 ) »
SELECT... ORDER BY belnr
DELETE ADJACENT DUPLICATES FROM itab COMPARING belnr

P.S. BELNR weist auf FI-Tabellen hin. Falls dem so ist reicht BELNR nicht aus sondern es müssen weitere Schlüsselfelder her.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: SELECT ohne doppelte Einträge zu einem bestimmten Feld

Beitrag von black_adept (Top Expert / 3952 / 105 / 886 ) »
Nachtrag: Evtl. kannst du das auch direkt im SELECT mittels SUBSELECT machen, wenn du ein weiteres Feld kennst, wo es ein Minimum oder Maximum gibt.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: SELECT ohne doppelte Einträge zu einem bestimmten Feld

Beitrag von Selma.schwarz (ForumUser / 2 / 0 / 0 ) »
Hallo Patrik,
mach es doch einfach: erstell eine dritte sortiere Tabelle ZTAB3 mit nur einem Feld BELNR Type C(..). Beim LOOP über die DBTAB_A füllst Du die ZTAB3 mit dem Befehl COLLECT BELNR die Tabelle. Und so hast eine sortierte Tabelle mit den BELNR‘s, in der jede BELNR nur einmal vorkommt.

Grüße
Selma

Seite 1 von 1

Vergleichbare Themen

5
Antw.
5422
Views
doppelte einträge
von zwiback » 28.10.2005 08:52 • Verfasst in ABAP® für Anfänger
0
Antw.
702
Views
Doppelte einträge bearbeiten
von Mavi » 07.01.2021 17:06 • Verfasst in ABAP® für Anfänger
2
Antw.
2687
Views
Suchhilfe doppelte Einträge
von dkast » 07.01.2019 13:21 • Verfasst in Dialogprogrammierung
0
Antw.
168
Views
Doppelte Einträge in CDS - View entfernen
von msfox » 22.01.2024 10:44 • Verfasst in ABAP® für Anfänger
2
Antw.
1886
Views
Doppelte Einträge bei LOOP überspringen
von Dyrdek » 08.12.2016 15:12 • Verfasst in ABAP® Core

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.