SQL und Performance


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

SQL und Performance

Beitragvon Hagbard » 24.11.2005, 08:51

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

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Beitragvon Arno Simon » 24.11.2005, 09:01

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
Arno Simon
ForumUser
 
Beiträge: 84
Registriert: 06.06.2005, 10:11
Wohnort: Oberhausen
Dank erhalten: 1 mal

Beitragvon Andreas G » 24.11.2005, 09:04

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!
Andreas G
Specialist
 
Beiträge: 175
Registriert: 05.10.2005, 14:13
Wohnort: w4tel
Dank erhalten: 0 mal


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

  Aktuelle Beiträge   
gelöst SALV - Layout wird nicht gezogen
Gestern von ralf.wenzel 0 Antw.
ADRMAS-Segmente vorbefüllen
Gestern von lausek 0 Antw.
MS Word nicht als SAPscript-Editor verwenden
Gestern von DeathAndPain 2 Antw.
EWM: HU mit RBG anhand von Produkt-LB bewegen
vor 2 Tagen von TimTo 0 Antw.
BADI Impl. cin_plug_in_to_migo deaktivieren
vor 2 Tagen von zzcpak 1 Antw.

  Ähnliche Beiträge beta
Performance von INE vs. EEQ
22.08.2013, 10:40 von black_adept 3 Antw.
Performance
02.04.2018, 08:49 von gtoXX 3 Antw.
Inner Joins - Performance
09.02.2006, 13:52 von Gast 10 Antw.
Performance Select
14.08.2008, 15:29 von GastX 3 Antw.
Performance Optimierung
23.03.2011, 10:38 von milka_12 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot]