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: 3150
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 178 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: 3735
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 295 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: 775
Registriert: 05.05.2006, 10:14
Dank erhalten: 173 mal
Ich bin: Entwickler/in


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

  Aktuelle Beiträge   
SQL Insert in ABAP
vor 6 Stunden von nickname8 1 Antw.
Fragen zu ALV Grids
vor 6 Stunden von nickname8 1 Antw.
iSSHA-1 Hashwerte generieren
vor 9 Stunden von derber 0 Antw.
Web-Dynpro Verständnisproblem bei Navigation
vor 15 Stunden von Bubbleboy 0 Antw.
Checkboxen dynamisch erstellen
vor 7 Stunden von ewx 5 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: Bing [Bot]

cron