In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
13 Beiträge • Seite 1 von 1
13 Beiträge Seite 1 von 1

In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo zusammen.

Ich habe eine iTab mit Belegnummern aus der VBAK (also VBAK-VBELN); ermittelt mit einem einfachen SELECT. Nun brauche ich dazu auch die Lieferung VBFA-VBELN, selektiert mit VBFA-VBELV = VBAK-VBELN.

Zusätzlich (und daran scheitere ich) brauche ich im selben SELECT noch den Transport VBFA-VBELN, selektiert mit VBFA-VBELV = VBFA-VBELN (der Lieferung).

Kurz: Wie bekomme ich in einem SELECT diese drei Informationen AUFTRAGSNUMMER, LIEFERUNG und TRANSPORT? Das muss in einem Rutsch passieren da der User nach den drei Kriterien selektieren möchte. Mich killt das zweimalige Lesen der VBFA.

Ciao,
Burkhart

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


Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von A6272 (Specialist / 238 / 8 / 36 ) »
Hallo,

im selekt kann man einen alias vergeben

Ein zweimaliges Lesen der VBFA würde z.B. so funktionieren
inner Join VBFA as a
on ...
inner Join VBFA as b
on a~VBELV = b~VBELV
...
where
a~ ...
b~ ...

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Alpmann (ForumUser / 62 / 5 / 19 ) »
Hallo Nordlicht,

ohne Tabelle VBFA müsste es auch unfgefähr so gehen:

SELECT VTTP.TKNUM, VTTP.VBELN, LIPS.POSNR, LIPS.MATNR, LIPS.VGBEL, LIPS.VGPOS
FROM VTTP INNER JOIN LIPS ON VTTP.VBELN = LIPS.VBELN
WHERE ...

In VTTP stehen die Lieferscheine des Transports. In LIPS-VGBEL steht der Vorgängerbeleg - also der Auftrag.

Mit freundlichen Grüßen
Matthias Alpmann

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Sorry; ein wenig spät: Danke für Deinen Tip. Geklappt hat das bei mir leider nicht. Ich versuche jetzt ein VIEW zu definieren.
Ciao,
Burkhart

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hier mal das gesamte Coding. Ich sehe meinen Fehler nicht. Eigentlich sollte das doch klappen. Hat jemand eine Idee? Ich bekomme nicht die korrekten Werte für TRANSPORT. Hmm


REPORT z_bl_temp .

TYPES: BEGIN OF lty_liste,
vbeln TYPE vbeln_va, " Auftrag
vbelv TYPE vbeln_von, " Lieferung
vbelt TYPE vbeln_von, " Transport
END OF lty_liste.

DATA: lt_liste TYPE TABLE OF lty_liste.

SELECT a~vbeln
b~vbelv
c~vbelv

FROM vbak AS a
INNER JOIN vbfa AS b ON b~vbeln = a~vbeln
INNER JOIN vbfa AS c ON c~vbelv = b~vbelv

INTO TABLE lt_liste.

BREAK-POINT.

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von sap_enthusiast (ForumUser / 95 / 25 / 23 ) »
Hast es mit einem einfachen Join versucht?
Eine weitere Frage, wieso 2mal ein Inner Join für VBFA in der selben Abfrage?

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Ich habe es jetzt hinbekommen.
Zwei JOINs auf VBFA waren nötig weil ich Belegnummern zu verschiedenen Schlüsseln brauchte.
Ciao,
Burkhart

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Zu früh gefreut.
Jetzt fällt mir auf die Füße daß es zu einigen Aufträge (VBAK) keine Transporte gibt. Aber das soll vom Programm akzeptiert werden. Die Zeilen OHNE Transport werden jetzt nicht selektiert.
Und nun?
Ciao,
Burkhart

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo nochmal. Ich stecke nach wie vor fest. Wie würdet Ihr den Join aufbauen?

Verkaufsbeleg aus der VBAK, dazu die Nummer der LIEFERUNG ermitteln und die Nummer des TRANSPORTES. Es kann sein daß noch keine Lieferung und/oder kein Transport vorhanden ist. Dennoch sollen die Belegnummern aus der VBAK in der Treffermege stehen.

Mein aktueller Ansatz funzt nicht:

SELECT a~vbeln
b~vbelv
c~vbelv

FROM vbak AS a
INNER JOIN vbfa AS b ON b~vbeln = a~vbeln
INNER JOIN vbfa AS c ON c~vbelv = b~vbelv

INTO TABLE lt_liste.

Verkaufsbelege zu denen noch kein Transport existiert werden nicht selektiert.

:-(

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von A6272 (Specialist / 238 / 8 / 36 ) »
Wenn man in einem Join die Daten aus der Haupttabelle immer selektiert werden sollen, egal ob in der Unterlagerten dazu passende Datensätze sind, dann ist das Schlüsselwort "left outer Join" und nicht "INNER JOIN".

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Ich benötige allerdings Daten aus zwei unterlagerten Tabellen. Outer Join ist aber nur einmal erlaubt.
:-(

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von A6272 (Specialist / 238 / 8 / 36 ) »
Dann die 2. Tabelle weglassen und nachträglich in einem 2. select selektieren und den Inhalt dazufügen.

Re: In einem SELECT zu einer Belegnummer Lieferung UND Transport lesen

Beitrag von Alpmann (ForumUser / 62 / 5 / 19 ) »
Hallo Nordlicht,

probier das mal so. Ohne Belegflusstabellen.

SELECT VBAK.VBELN, LIPS.VGBEL, LIPS.VGPOS, LIPS.VBELN, VTTP.TKNUM
FROM VTTP RIGHT JOIN LIPS ON VTTP.VBELN = LIPS.VBELN RIGHT JOIN
VBAK ON LIPS.VGBEL = s01_VBAK.VBELN
WHERE VBAK.VBELN Like '00300*'

Ich habe gerade keinen Zugriff aufs System, deswegen den Select mal so von Hand aufgebaut. Das VBAK.VBELN Like '00300*' entspricht bei uns der Selektion von Lieferplänen (Tranakion VA32).

Da muss man näturlich noch einiges an Daten überlesen. So spontan Aufträge, die direkt fakturiert werden, Korrekturlieferungen aus Lieferplänen, ...

Bei den Eingrenzungen für die LIPS und die VTTP hängt das glaube ich vom ABAP Stand ab, ob da auch Eingrenzungen möglich sind.

Mit einem schönen Select wird das auf jeden Fall nichts.

Ist auch die Frage, was möchtest du mit den Daten machen? Wenn du rausbekommen möchtest, ob zu Auslieferungen Transporte erstellt worden sind, dann kannst du ja zum Beispiel Auslieferungen der letzten 4 Wochen über das Anlagedatum einer Lieferung selektieren und dann mit einem überschaubaren Datenhaufen weitermachen.

So etwas ähnliches haben wir bei uns mal gemacht, um den Versand darauf hinzuweisen, dass die zum Beispiel noch keinen DFÜ-Warenbegleitschein erstellt haben. Die bekommen da bei uns eine Hinweis-Email.

Mit freundlichen Grüßen
Matthias Alpmann

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2367
Views
Merkmale lesen mit select
von EmrahKilic » 29.10.2012 13:47 • Verfasst in ABAP® für Anfänger
4
Antw.
2258
Views
Lesen mit SELECT ...INTO TABLE....... Verzweifelung
von JürgenFFM » 10.04.2006 22:41 • Verfasst in Financials
0
Antw.
2792
Views
HTML Multiple Select/Option Werte lesen
von BubbleSort » 09.08.2016 10:08 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
2463
Views
BAPI_ACC_DOCUMENT_POST - Erzeugte Belegnummer?
von PsychoMantis » 20.11.2007 15:32 • Verfasst in ABAP® Core
6
Antw.
2740
Views
Vergebene Belegnummer ermitteln
von HUllendahl » 09.02.2006 10:30 • Verfasst in ABAP® für Anfänger

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

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1509
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8127