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.
2326
Views
Performance von INE vs. EEQ
von Birdy » 14.08.2013 11:35 • Verfasst in ABAP® für Anfänger
3
Antw.
1903
Views
Performance
von schick » 29.03.2018 14:48 • Verfasst in ABAP® für Anfänger
3
Antw.
2399
Views
Performance
von SAP_ENTWICKLER » 19.02.2018 07:06 • Verfasst in SAP HANA für Anfänger
9
Antw.
10666
Views
Performance-Tip
von Steff » 04.09.2004 13:47 • Verfasst in Tips + Tricks & FAQs
1
Antw.
1630
Views
IDOC-Performance
von Thomas R. » 18.09.2007 15:02 • Verfasst in Basis

Ü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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140