Code: Alles auswählen.
data: begin of t occurs 0,
matnr like makt-matnr,
maktx like makt-maktx,
end of t,
i type i.
select matnr into table t from mara.
loop at t.
select single maktx into t-maktx from makt
where matnr = t-matnr
and spras = sy-langu.
modify t.
endloop.
describe table t lines i.
Glaub ich nicht!Ulrich hat geschrieben:mindestens eben so schnell
ich plädiere für folgende Variante, da ich SELECT-Schleifen verabscheue... (laufzeitintensiv, debugging-problematisch...)GERDLA hat geschrieben: ...
SELECT F~MATNR P~MAKTX
INTO (I_TAB-MATNR, I_TAB-MAKTX)
FROM MARA AS F INNER JOIN MAKT AS P
ON F~MATNR = P~MATNR
WHERE F~MATNR in ZMATNR.
APPEND I_TAB.
zähler = zähler + 1.
ENDSELECT.
...
Code: Alles auswählen.
TYPES:
BEGIN OF t_material,
matnr TYPE matnr,
maktx TYPE maktx,
END OF t_material.
DATA:
gt_material TYPE TABLE OF t_material.
SELECT DISTINCT f~matnr
p~maktx
INTO CORRESPONDING FIELDS OF TABLE gt_material
FROM mara AS f
INNER JOIN makt AS p
ON f~matnr = p~matnr
WHERE f~matnr IN zmatnr
ORDER BY f~matnr.
Code: Alles auswählen.
DESCRIBE TABLE gt_material LINES zaehler.
der geschachtelte SELECT liest alle MATNR und versucht einen Text aus MAKT dazuzulesen, während der JOIN nur die Sätze liefert, wo es zur MATNR auch einen Text in der MAKT gibt.GERDLA hat geschrieben:Dir ist schon klar, dass die beiden Codestrecken in deinem Posting am Anfang nicht dasselbe tun, oder?
Hallo black_adept,
was willst du mir genau sagen, stehe wohl
etwas auf der Leitung. Bitte noch kleinen Tipp.
grüsse
gerdla
Hi dele,Anonymous hat geschrieben:...
Allerdings verwenden wir den ORDER BY nur dann, wenn's unbedingt notwendig ist, weil dadurch die DB belastet wird. Es ist im allgemeinen besser, die interne Tabelle selbst (auf dem Application-Server) zu sortieren. Meines Wissens gibt's dazu auch irgendwo von SAP eine Empfehlung.
Ein Einfügen per SELECT... INTO TABLE führt automatisch zum korrekten Aufbau der Schlüssel. Weiß ich noch von meiner Zeit als Externer bei SAP.black_adept hat geschrieben:Hi dele,Anonymous hat geschrieben:...
Allerdings verwenden wir den ORDER BY nur dann, wenn's unbedingt notwendig ist, weil dadurch die DB belastet wird. Es ist im allgemeinen besser, die interne Tabelle selbst (auf dem Application-Server) zu sortieren. Meines Wissens gibt's dazu auch irgendwo von SAP eine Empfehlung.
nur mal so aus Neugier.
Wenn die Zieltabelle vom typ "sorted table" ist. Macht ihr einen Select ohne order in eine temporäre Zwischentabelle, sort und dann move in die "sorted table" oder direkt in die "sorted table"?
Und wo steht denn die SAP-Empfehlung? Ich mach das immer so nach Gefühl aber wenn SAP da tolle Ideen hat was am Besten ist würd ich gern dieses Wissen mitnehmen.