Problem mit Select-Anweisung


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Problem mit Select-Anweisung

Beitragvon Crashday2707 » 19.05.2018, 10:51

Hallo Leute,

ich habe ein kleines Problem mit einer Select-Anweisung. Ich betrachte die folgende Tabelle:

DATA: lt_test TYPE TABLE OF gt_test.

lv_key = &BA

Tabelle: gt_test
docnr docvr key
1000 02 &BA
1000 03 &BA
1000 04 &BA
1000 05 &BA
1010 01 &BA
1010 02 &BA
1010 03 &BA
1020 01 &BB
1020 02 &BB
1020 03 &BB
1020 04 &BB
1020 05 &BB

Ich möchte nun gerne alle Dokumente und die dazugehörige Version, wobei ich den Schlüssel (key) angeben und ich jeweils nur die Dokumente mit der aktuellsten Version abspeichern möchte. Das heißt als Ergebnis sollte sowas rauskommen:

1000 05 &BA
1010 03 &BA

Es sollte ja irgendwas mit

Select * from gt_test INTO TABLE lt_test WHERE key = lv_key AND ... (?) Aber ich weiß nicht, wie ich die weitere Anweisung definieren soll. Ich habe irgendwas an GROUP BY gedacht, nur irgendwie fällt mir das doch schwer.

Es wäre auch in Ordnung, zunächst nur im Select alle mit key = lv_key rauszusuchen und danach im Loop eine Where-Anweisung zu ergänzen, wo nur die Dokumente, mit der höchsten Version, rauszupicken. Es käme aber wahrscheinlich dasselbe heraus.

Es wäre super, wenn mir jemand dabei helfen könnte - Danke :)

Crashday
Crashday2707
ForumUser
 
Beiträge: 4
Registriert: 14.05.2018, 12:54
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Problem mit Select-Anweisung

Beitragvon ralf.wenzel » 19.05.2018, 11:31

SELECT funktioniert nur mit Datenbanktabellen, nicht mit internen Tabellen. Du hast da wohl ein grundlegendes Verständnisproblem, was du suchst, ist LOOP.


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3048
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 169 mal
Ich bin: Freiberufler/in

Re: Problem mit Select-Anweisung

Beitragvon Crashday2707 » 19.05.2018, 15:09

Die Tabelle gt_test ist in meinem Problem eine Datenbanktabelle und keine interne Tabelle, daher geht die Select-Anweisung. Es sollte nur ein Beispiel sein, wie so eine Tabelle in meinem Fall ungefähr aussieht. Ich will den Loop nachher auf die Tabelle lt_test verwenden, wo ich dann vorgehabt hatte, eine WHERE-Bedingung einzufügen, falls nicht die WHERE-Bedingung direkt vollständig in dem Select-Befehl reingeht.
Crashday2707
ForumUser
 
Beiträge: 4
Registriert: 14.05.2018, 12:54
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Problem mit Select-Anweisung

Beitragvon ewx » 22.05.2018, 08:22

Da wirst du mit einem Sub-Select arbeiten müssen:
http://www.tricktresor.de/blog/sub-queries/

Ich glaube, mit GROUP kommst du nicht zum Ziel.
ewx
Top Expert
 
Beiträge: 3664
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 273 mal

Re: Problem mit Select-Anweisung

Beitragvon DeathAndPain » 23.05.2018, 12:13

Die Aggregatfunktion MAX( ) wird hier sicherlich hilfreich sein. Oder ORDER BY. Ich würde erst mal alle docnr per DISTINCT in eine interne Tabelle einlesen und dann für jede davon einen SELECT UP TO 1 ROWS mit ORDER BY docvr DESCENDING machen. Geht vielleicht auch mit einem Subselect, in dem dann der MAX( ) steckt.
DeathAndPain
Expert
 
Beiträge: 666
Registriert: 05.05.2006, 10:14
Dank erhalten: 158 mal
Ich bin: Entwickler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Kopfzeile wird doppelt angezeigt.
vor 3 Stunden von Bright4.5 0 Antw.
Cl_SALV-Table Summe +Währung automatisch ausgeben
vor 5 Stunden von Bright4.5 0 Antw.
Dynpro DDIC
vor 5 Stunden von Icke0801 2 Antw.
ABAP Debugger - Funktionen fehlen - Ursache?
vor 2 Stunden von nickname8 2 Antw.
BAPI_ACC_BILLING_REV_POST richtig Verwenden
vor 12 Stunden von thomas.klammer 0 Antw.

  Ähnliche Beiträge beta
ALV Problem
30.05.2006, 15:53 von barbara 20 Antw.
SQL Problem
22.04.2008, 11:52 von ereglam 3 Antw.
CSS Problem
25.08.2008, 11:06 von CeyserSoze 1 Antw.
Join-Problem
20.01.2005, 09:35 von Gast 3 Antw.
Problem mit Debugging
16.08.2005, 09:55 von reini69 17 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron