Daten aus zwei versch. Tabellen

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

Daten aus zwei versch. Tabellen

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Hallo!

Dem Anwender soll eine Selektion zur Verfügung stehen, über die er einen Bereich von Kundennummern eingeben kann.
Ausgegeben werden sollen Felder aus zwei unterschiedlichen Tabellen.
Ich bekomme mit der Abfrage in der Spalte Price keine Werte, sondern
nur die Null.

Code: Alles auswählen.

tables: sflight, sbook.
 SELECT-OPTIONS s_kdnr FOR SBOOK-CUSTOMID.
 START-OF-SELECTION.
 SELECT * FROM SBOOK WHERE CUSTOMID IN  s_kdnr .
 WRITE: SBOOK-CARRID,SBOOK-CONNID, SBOOK-FLDATE,   SFLIGHT-PRICE.
 ENDSELECT.

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


Beitrag von Paint (Specialist / 116 / 0 / 1 ) »
Du liest momentan mit dem SELECT nur die Tabelle SBOOK, wenn du auch noch PRICE aus SFLIGHT ausgeben möchtest, musst du auch noch über diese Tabelle selektieren.

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Meinst du so ?

Code: Alles auswählen.

tables: sflight, sbook. 
 SELECT-OPTIONS s_kdnr FOR SBOOK-CUSTOMID. 
 START-OF-SELECTION. 
 SELECT * FROM SBOOK WHERE CUSTOMID IN  s_kdnr .
 [b]SELECT SFLIGHT FROM SFlight.[/b] WRITE: SBOOK-CARRID,SBOOK-CONNID, SBOOK-FLDATE,    SFLIGHT-PRICE. 
 ENDSELECT. 

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
sorry das sollte so heissen:

Code: Alles auswählen.

tables: sflight, sbook. 
 SELECT-OPTIONS s_kdnr FOR SBOOK-CUSTOMID. 
 START-OF-SELECTION. 
 SELECT * FROM SBOOK WHERE CUSTOMID IN  s_kdnr . 
 SELECT PRICE FROM SFLIGHT.
 WRITE: SBOOK-CARRID,SBOOK-CONNID, SBOOK-FLDATE,   SFLIGHT-PRICE. 
 ENDSELECT. 

Beitrag von Paint (Specialist / 116 / 0 / 1 ) »
naja nicht so ganz, eher so ungefähr:

DATA: wa_sflight TYPE sflight,
wa_sbook TYPE sbook.

SELECT-OPTIONS s_kdnr FOR wa_sbook-customid.

START-OF-SELECTION.

SELECT carrid connid fldate FROM sbook
INTO CORRESPONDING FIELDS OF wa_sbook
WHERE customid IN s_kdnr.

SELECT SINGLE price FROM sflight
INTO CORRESPONDING FIELDS OF wa_sflight
WHERE carrid = wa_sbook-carrid
AND connid = wa_sbook-connid
AND fldate = wa_sbook-fldate.

WRITE: wa_sbook-carrid,
wa_sbook-connid,
wa_sbook-fldate,
wa_sflight-price.

ENDSELECT.

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Hi!

Ok, klar das geht auch. Allerdings meinte ich vielmehr mit einem (left,inner oder outer)join
das Problem zu lösen.

Frage 1)
Gibt es in SAP die Möglichkeit sowie in Access
(Extras->Beziehungen) die Beziehungen eines Datenmodells anzusehen (z.B. das Flugdatenmodell)

Frage 2)
Kann man das oben genannte Problem nicht mit
einem Join lösen, da in dem Fall Infos aus 2 verschied. Tabellen kommen

Code: Alles auswählen.

select * FROM SBOOK inner join SFLIGHT on
 SBOOK-Primärschlüssel = SFLIGHT-Fremdschlüssel
 WHERE SBOOK-CUSTOMID IN  s_kdnr.
 WRITE: SBOOK-CARRID,SBOOK-CONNID, SBOOK-FLDATE,  SFLIGHT-PRICE. 
 ENDSELECT. 
Grüße
bohne

Beitrag von GERDLA (Specialist / 116 / 0 / 0 ) »
bohne hat geschrieben:Hi!

Code: Alles auswählen.

select * FROM SBOOK inner join SFLIGHT on
 SBOOK-Primärschlüssel = SFLIGHT-Fremdschlüssel
 WHERE SBOOK-CUSTOMID IN  s_kdnr.
 WRITE: SBOOK-CARRID,SBOOK-CONNID, SBOOK-FLDATE,  SFLIGHT-PRICE. 
 ENDSELECT. 
Grüße
bohne
Hei Bohne probier doch mal folgendes:

SELECT F~CARRID P~PRICE

INTO (I_TAB-CARRID, I_TAB-PRICE)
FROM SBOOK AS F INNER JOIN SFLIGHT AS P
ON F~CARRID = P~CARRID
WHERE F~CUSTOMID in s_kdnr.

WRITE I_TAB-PRICE.

APPEND I_TAB.

ENDSELECT.


gruss


gerhard

Beitrag von bohne (Specialist / 437 / 0 / 0 ) »
Hi GERDLA,

bitte um Verzeihung aber was bedeutet
F~ P~


Grüße
bohne

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
Hallo bohne,

in der FROM-Klausel kannst Du den Tabellen ja Aliasnamen geben:

Code: Alles auswählen.

...
FROM SBOOK AS F INNER JOIN SFLIGHT AS P
...
Durch diese Aliasnamen wird das SQL-Statement übersichtlicher, weil nicht immer der ganze Tabellenname ausgeschrieben werden muss.

Wenn dann Bezug auf die Spalten der Tabelle genommen werden soll, kommt die Tilde (~) zum Einsatz:

Code: Alles auswählen.

SELECT F~CARRID P~PRICE
...
FROM SBOOK AS F INNER JOIN SFLIGHT AS P
ON F~CARRID = P~CARRID
WHERE F~CUSTOMID in s_kdnr.
Gruß,
Charadin

Beitrag von GERDLA (Specialist / 116 / 0 / 0 ) »
bohne hat geschrieben:Hi GERDLA,

bitte um Verzeihung aber was bedeutet
F~ P~


Grüße
bohne
~

Interfacekomponenten-Selektor

Wenn ein Interface intf in einer Klasse implementiert wird, erhält eine Interfacekomponente comp in der Klasse den Namen intf~comp.

Das wolltest Du aber eigentlich nicht wirklich wissen :D

Wenn Du wissen willst, was und wie ein join funktioniert. Schreibe das Word join in dein Programm, gehe auf das Wort Join und drücke F1.

gruss

gerhard

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2179
Views
Eingabehilfe für Dynpro: zwei Felder aus versch. Tabellen
von ManMan » 06.07.2017 22:37 • Verfasst in ABAP® für Anfänger
7
Antw.
3524
Views
Zwei Tabellen joinen (für ALV)?
von k4lisp3r4 » 22.01.2007 16:33 • Verfasst in ABAP® für Anfänger
3
Antw.
354
Views
Operieren mit zwei Tabellen
von LisaKremer » 22.01.2020 17:57 • Verfasst in ABAP® für Anfänger
7
Antw.
8358
Views
Select auf zwei Tabellen
von mip » 27.03.2008 16:05 • Verfasst in ABAP® für Anfänger
10
Antw.
4153
Views
Ausgabe von zwei Tabellen mit ALV
von Katinka » 15.09.2005 12:54 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141