Bei MAX wird der Feldinhalt gelöscht?

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

Bei MAX wird der Feldinhalt gelöscht?

Beitrag von Lily (ForumUser / 5 / 0 / 0 ) »
Hallo,

ich muss aus einer Tabelle den Satz mit dem neuesten Datum selektieren. Das habe ich nun über MAX probiert. Mir wird zwar der richtige Satz eingelesen, das Datum bleibt jedoch leer.

Woran kann das liegen, dass begda nach dem einlesen blank ist?

Code: Alles auswählen.


types: begin of itab1,
       pernr like pa0001-pernr,
       ename like pa0001-ename,
       kostl like pa0315-kostl,
       lstar like pa0315-lstar,
       werks like pa0315-werks,
       begda like pa0315-begda.
types: end of itab1.

data: itab_data type table of itab1.
data: wa_data type itab1.

Loop at itab_data into wa_data.
Select a~ename b~kostl b~lstar b~werks max( b~begda )
         into corresponding fields of wa_data
            from pa0001 as a
            join pa0315 as b on b~pernr eq a~pernr
            where a~pernr eq wa_data-pernr
            group by a~ename b~kostl b~lstar b~werks b~begda.

Gruß
Lily

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


Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Probier mal das hier, falls dein Feld in der WA_DATA "begda" heißt


Select a~ename b~kostl b~lstar b~werks max( b~begda ) as begda
into corresponding fields of wa_data
from pa0001 as a
join pa0315 as b on b~pernr eq a~pernr
where a~pernr eq wa_data-pernr
group by a~ename b~kostl b~lstar b~werks b~begda.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Lily (ForumUser / 5 / 0 / 0 ) »
Hi Stefan,

bin jetzt auch endlich dazu gekommen deine Lösung zu testen! :wink:

--> DANKE!!!!!!!!!!!!!

Jetzt funktioniert alles wunderbar!

Gruß
Lily

Beitrag von Lily (ForumUser / 5 / 0 / 0 ) »
Shit, zu früh gefreut :?

das mit dem Datum funktioniert jetzt zwar, dass das neueste gezogen wird, aber die restlichen Felder werden dann nicht richtig gefüllt.

Mein Tabelle hat z.B. 5 Einträge:

PERNR LSTG KOSTL BEGDA
33333 AAA 222 01.01.2003
33333 AAA 111 01.06.2004
33333 BBB 333 01.01.2005
44444 AAA 333 01.06.2005
44444 AAA 222 01.09.2005

Wenn ich jetzt z.B. nach den PERNR 33333 und 44444 selektiere, sollten mir nur die beiden entsprechenden Sätze mit dem neuesten Datum selektiert werden.

33333 BBB 333 01.01.2005
44444 AAA 222 01.09.2005

Bei meiner Selektion (siehe oben) bekomme ich aber alle Sätze selektiert, nur dass halt dann überall das entsprchend höchste Datum drin steht. :(

33333 AAA 222 01.01.2005
33333 AAA 111 01.01.2005
33333 BBB 333 01.01.2005
44444 AAA 333 01.09.2005
44444 AAA 222 01.09.2005

Ich kapiers irgenwie nicht mehr...

Gruß Lily

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
du soltlest deine Aggregatfunktion in der where Bedingung aufrufen um nur den Wert mit dem Maximalwert zu bekommen.

Beitrag von Lily (ForumUser / 5 / 0 / 0 ) »
Hi Flo,

kannst du mir mal nen Tipp geben, wie ich MAX in die WHERE-Bedingung bekommen soll?
In der Doku wird MAX immer nur beim Select verwendet und bei meinen Versuchen, das irgendwie beim Where unter zu bekommen, bekam ich ständig nur Syntaxfehler...

Danke!

Gruß
Lily

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Sorry das was ich geschrieben hatte war Blödsinn ohne Nachgedacht zu haben:)
Nun aber mal was Konstruktives:
Ich glaube für deinen Bedarf musst du den Select wie folgt umbauen:

Code: Alles auswählen.

SELECT a~ename b~kostl b~lstar b~werks b~begda
         INTO CORRESPONDING FIELDS OF wa_data
            FROM pa0001 AS a
            JOIN pa0315 AS b ON b~pernr EQ a~pernr
            WHERE a~pernr EQ wa_data-pernr
                 AND  b~begda = ( SELECT MAX( begda ) FROM pa0315
                      WHERE pernr = a~pernr )
            GROUP BY a~ename b~kostl b~lstar b~werks b~begda.
endselect.
Die Subquery sorgt dafür dass nur Sätze mit dem Max begda gelesen werden.

Beitrag von Lily (ForumUser / 5 / 0 / 0 ) »
Hatte mich schon gewundert :D
Aber jetzt funktioniert alles wunderbar!
Dankeschön!

Gruß
Lily

Seite 1 von 1

Vergleichbare Themen

3
Antw.
578
Views
Feldinhalt an bestehenden Feldinhalt anhängen
von PatrickHei » 17.11.2020 09:56 • Verfasst in ABAP® für Anfänger
2
Antw.
2304
Views
Gelöscht Dauerbelege
von Matthias_L. » 06.03.2006 17:40 • Verfasst in Financials
3
Antw.
3719
Views
Report gelöscht...
von gabrielgn » 29.01.2008 09:03 • Verfasst in ABAP® für Anfänger
8
Antw.
2373
Views
Sapscript Feldinhalt ####
von Thomas17 » 20.05.2014 11:03 • Verfasst in ABAP® Core
2
Antw.
1933
Views
FUGR (versehentlich) gelöscht, was jetzt?
von ereglam » 10.05.2005 10:36 • Verfasst in Basis

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.