SQL letzter Datensatz

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

SQL letzter Datensatz

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
Hallo miteinander
könnte mir bitte jemand helfen, wie ich nur den letzter Datensatz von einer Datenbanktabelle selektiere kann. ist dies überhaupt möglich?
danke kostonstyle

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


Beitrag von CeyserSoze (ForumUser / 13 / 0 / 0 ) »
Hallo kostonstyle,

spräche was dagegen, einen Select in eine Tabelle vom Typ Standard zu machen und dann den letzten Index abzufragen :?:

Code: Alles auswählen.

REPORT ZZZ.

TYPES:
  BEGIN OF ty_eina,
    infnr LIKE eina-infnr,
    erdat LIKE eina-erdat,
  END OF ty_eina.

DATA: 
itab TYPE STANDARD TABLE OF ty_eina,
n    TYPE i.

FIELD-SYMBOLS:
  <fs> LIKE LINE OF itab.

SELECT infnr erdat FROM eina INTO TABLE itab.

DESCRIBE TABLE itab LINES n.

READ TABLE itab INDEX n ASSIGNING <fs>.

WRITE: / <fs>-infnr, <fs>-erdat.

Gruß
CS

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
spräche was dagegen, einen Select in eine Tabelle vom Typ Standard zu machen und dann den letzten Index abzufragen
naja, das ist ja schon ziemlich durch die Brust ins Auge. :shock:
Ich hole mir ein ganzes Regal aus dem Lager, bloß um an die letzte Schraube zu kommen. :roll:

Probier es doch mal mit

Code: Alles auswählen.

Select ... 
up to 1 rows 
order by ... 
descending 
Also Zugriff in umgekehrter Index-Reihenfolge und dann nur 1 Zeile.

Vor langer langer Zeit habe ich so etwas schon mal gemacht, weiß also, daß es funktionieren muß, komme aber an das Coding nicht mehr heran.

Sollte aber ein leichtes sein, das mal auszuprobieren.

Viel Erfolg.
Gruß
babap

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
super, es hat geklappt mit up row 1
vielen dank kostonstyle

Beitrag von CeyserSoze (ForumUser / 13 / 0 / 0 ) »
Hallo babap,

zugegeben die Methode ist nicht gerade elegant, aber was macht man, wenn es kein Feld gibt nach dem man absteigend sortieren kan, dass einem einen hinweis auf die Position in der Tabelle gibt?

Gruß
CS

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
CeyserSoze hat geschrieben:...
es kein Feld gibt nach dem man absteigend sortieren kan, dass einem einen hinweis auf die Position in der Tabelle gibt?
tja, wenn es wirklich so eine "Mülltabelle" gäbe ...

In SAP benötigt jede Tabelle einen eindeutigen Primärschlüssel.
Damit habe ich immer eine Reihenfolge, die ich auch umkehren kann.

Gruß
babap
P.S. "Abladetabellen" serialisiert man durch eine Satznummer oder einen Zeitstempel ...

Beitrag von CeyserSoze (ForumUser / 13 / 0 / 0 ) »
Hi babap,

da hast du natürlich recht. Primärschlüssel sollte jede Tabelle haben.

Asche über mein Haupt... :oops:

Gruß
CS

Re: SQL letzter Datensatz

Beitrag von Bugfrei (ForumUser / 3 / 1 / 0 ) »
Hi zusammen,

komme aus JavaScript/Java/C# Entwicklung:

1. sind Primärschlüssel nicht zwangsweise sortierbar

Wenn es Integer sind ja, bei UUID nein. Ok, ABAP und ihre UUIDs sind voll am Sinn der UUIDs vorbei (zumindest in RAP). Einfach das viert letzte Byte +2 macht die Sinnhaftigkeit der Verwendung von UUID komplett zunichte und stelle ein immenses Sicherheitsrisiko dar.

Auch wenn RAP UUID's sortierbar sind, darauf verlassen würde ich nicht nicht.

2. können Primärschlüssel aus aus mehreren Keys bestehen, wird wäre eine Sortierung ebenfalls schwer bis unmöglich.

3. sollte jede Tabelle einen Zeitstempel besitzen (in der Regel Millisekunden genau). Nach diesem sollten sich die Tabellen gut sortieren lassen.

4. Das einlesen einer kompletten Tabelle um dann die Anzahl der Einträge n zu verwenden um auf den Index n zuzugreifen um damit den letzten Eintrag zu ermitteln ist

- für kleine Tabellen sicherlich eine sichere und ausreichend schnelle Möglichkeit
- für große Tabellen (z.B. 10 Milliarden Einträge) sicher absolut unbrauchbar!

Diese Methode verbraucht zu viel Ressourcen, wäre somit langsam und es wäre auch nicht sicher ob sie funktioniert.

Grundsätzlich: Wenn eine Tabelle keine sortierbaren Felder besitzt, dann gibt es technisch gesehen keinen 100% sicheren "letzten Eintrag". Denn was SQL als letzten Eintrag liefert MUSS nicht unbedingt der Eintrag sein, der als letztes erstellt wurde. In solchen Fällen bedarf es Anpassungen an der Tabelle, am Backend das die Daten einträgt oder es ist einfach nicht möglich (keine gute Datenbankplanung sorgt halt irgendwann für Probleme).

Gruß,

Carsten

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1369
Views
Select...Endselect...letzter Datensatz in der itab doppelt
von Kali » 27.03.2013 14:32 • Verfasst in ABAP® für Anfänger
2
Antw.
2291
Views
Letzter Geburtstag
von PeterPaletti » 03.07.2024 08:50 • Verfasst in ABAP® für Anfänger
8
Antw.
8459
Views
Default ist letzter Tag (sy-datum)
von BabsiCSC » 11.08.2008 10:36 • Verfasst in ABAP® Core
2
Antw.
2645
Views
Anzeige letzter Anmeldedaten
von blausieben » 13.09.2007 14:24 • Verfasst in Basis
2
Antw.
3366
Views
Berechnung letzter Tag im Monat
von gmsdd » 15.05.2007 09:20 • Verfasst in ABAP® für Anfänger

Ü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.