SQL und Performance

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

SQL und Performance

Beitrag von Hagbard ( / / 0 / 3 ) »
In der Tabelle zr1_sd_msp sind Produkthierachien abgelegt, die per Schleife abgefragt werden. Der Eingangswert ist von der Größe variabel z.B.
1421990000, anschliessend wird so lange der Wert um 1
subtrahiert bis ein Eintag in der Datenbank gefunden wurde.
Ist es auch möglich, das mit einer SQL-Abfrage zutätigen, ohne Schleife.
Vielen Dank!

l_prdha = f_konp-prdha.
l_length = strlen( l_prdha ).

WHILE l_length > 0.
l_prdha = l_prdha(l_length).

SELECT SINGLE * FROM zr1_sd_msp INTO st_i_msp
WHERE vkorg = f_konp-vkorg
AND vtweg = f_konp-vtweg
AND prdha = l_prdha.
IF sy-subrc IS INITIAL.
APPEND st_i_msp.
IF l_prdha <> f_konp-prdha.
st_i_msp-prdha = f_konp-prdha.
APPEND st_i_msp.
ENDIF.
EXIT.
ENDIF.
l_length = l_length - 1.
ENDWHILE.

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


Beitrag von Arno Simon (ForumUser / 84 / 0 / 1 ) »
Hallo Hagbard,

Deine Erläuterung ist mE so nicht ganz richtig. Du dekrementierst nicht den Wert an sich, sondern die Länge des Zeichenkettenanteils des Wertes der für den Vergleich herangezogen wird.

Sprich

1. Schritt: 1421990000
2. Schritt: 142199000

Jedenfalls ließt sich Dein Codingausschnitt für mich entsprechend....

Würde nur l_prdha dekrementiert, sollte es nach meinem dafürhalten (ungetestet) so funktionieren:

Code: Alles auswählen.

SELECT SINGLE * 
  FROM zr1_sd_msp 
  INTO st_i_msp 
 WHERE vkorg = f_konp-vkorg  
   AND vtweg = f_konp-vtweg 
   AND prdha LE l_prdha
 ORDER BY prdha DESCENDING.
vG

Arno

Beitrag von Andreas G (Specialist / 175 / 0 / 0 ) »
Hallo Hagbard.

Ich weis nicht, ob ich deine Frage richtig verstanden habe, aber vielleicht hift dir das:
Wenn du nur einen Wert (den ersten gefundenen Wert) selektieren willst probiers mal mit SELECT SINGLE ... Damit wird nur ein Einzelsatz gelesen und du benötigst kein ENDSELECT.

mfg Andi
Hauptsoch: HAUPTSOCH!

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2612
Views
Performance von INE vs. EEQ
von Birdy » 14.08.2013 11:35 • Verfasst in ABAP® für Anfänger
3
Antw.
2150
Views
Performance
von schick » 29.03.2018 14:48 • Verfasst in ABAP® für Anfänger
3
Antw.
2807
Views
Performance
von SAP_ENTWICKLER » 19.02.2018 07:06 • Verfasst in SAP HANA für Anfänger
1
Antw.
1952
Views
IDOC-Performance
von Thomas R. » 18.09.2007 15:02 • Verfasst in Basis
3
Antw.
2211
Views
Performance Select
von derMartin » 14.08.2008 13:58 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 510
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2145
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8741