Beim Inner-Join müssen dringend die 'Schlangenlinien' als Trenner zwischen Tabellenname und Feldname verwendet werden. Wenn man das vergisst erzeugt das meistens keinen Syntax-Fehler, aber das Ergebnis des Selects ist fehlerhaft.
Inner Joins gehen natürlich auch als 'select single':
* * Coded by Thorsten Neubüser - www.4ap.de *
SELECT SINGLE mbew~lbkum mbew~vmkum mara~meins FROM mbew inner join mara on mara~matnr = mbew~matnr into corresponding fields of alv_output WHERE mbew~mandt = sy-mandt AND mbew~matnr = it_daten-matnr AND mbew~bwkey = it_daten-werks AND mbew~bwtar = ''.
Der doppelte INNER JOIN [über zwei Tabellen]:
* Materialien ermittel SELECT mara~mtart marc~matnr marc~werks marc~beskz marc~sobsl makt~maktx mbew~bklas
FROM marc INNER JOIN mara ON marc~matnr = mara~matnr INNER JOIN makt ON marc~matnr = makt~matnr INNER JOIN mbew ON marc~matnr = mbew~matnr AND marc~werks = mbew~bwkey
INTO CORRESPONDING FIELDS OF TABLE it_daten
WHERE marc~matnr IN s_matnr AND marc~werks IN s_werks AND makt~maktx IN s_maktx AND makt~spras = sy-langu AND mara~mtart IN s_mtart AND marc~beskz IN s_beskz AND marc~sobsl IN s_sobsl AND mbew~bklas IN s_bklas AND mbew~bwtar = ''.
* Alle Einkauspreise raussuchen SELECT EINA~LIFNR EINA~MATNR EINE~WERKS EINE~NETPR EINE~PEINH EINE~WAERS MAKT-MAKTX FROM EINA INNER JOIN EINE ON EINA~INFNR = EINE~INFNR INNER JOIN MAKT ON EINA~MATNR = MAKT~MATNR INTO CORRESPONDING FIELDS OF TABLE EK_INFOS WHERE EINA~LIFNR IN LIFNR AND EINA~MATNR IN MATNR AND EINE~WERKS IN WERKS AND MAKT-SPRAS = SY-LANGU.
Der dreifache INNER JOIN [über drei Tabellen]:
* Alle Warenbewegungen raussuchen, dazu die Kupfermengen SELECT ZCZABW~DELNR ZCZABW~KUNWE ZCZABW~EBELN ZCZABW~EBELP ZCZABW~MATNR ZCZABW~MENGE ZCZABW~DATUM EKKO~LIFNR EKKO~EKORG EKPO~WERKS EKPO~NETPR EKPO~PEINH * u.U. CU-Preis aus J_1NKGW-J_1NKGW nehmen!! J_1NEMM~J_1NVGW J_1NEMM~J_1NVGE ZEPR~WAERS ZEPR~PEINH ZEPR~NETPR INTO (CUPREISE-DELNR, CUPREISE-KUNWE, CUPREISE-EBELN, CUPREISE-EBELP, CUPREISE-MATNR, CUPREISE-MENGE, CUPREISE-DATUM, CUPREISE-LIFNR, CUPREISE-EKORG, CUPREISE-WERKS, CUPREISE-EKPO_NETPR, CUPREISE-EKPO_PEINH, CUPREISE-J_1NVGW, CUPREISE-J_1NVGE, CUPREISE-ZEPR_WAERS, CUPREISE-ZEPR_PEINH, CUPREISE-ZEPR_NETPR) FROM ZCZABW INNER JOIN EKKO ON EKKO~EBELN = ZCZABW~EBELN INNER JOIN EKPO ON EKPO~EBELN = ZCZABW~EBELN AND EKPO~EBELP = ZCZABW~EBELP INNER JOIN J_1NEMM * Lieferant wird NICHT berücksichtigt! ON J_1NEMM~J_1NLIF = '' AND J_1NEMM~J_1NMAT = ZCZABW~MATNR AND J_1NEMM~J_1NWRK = EKPO~WERKS INNER JOIN ZEPR ON ZEPR~LIFNR = EKKO~LIFNR AND ZEPR~EKORG = EKKO~EKORG AND ZEPR~WERKS = EKPO~WERKS AND ZEPR~MATNR = ZCZABW~MATNR WHERE ZCZABW~DELNR IN S_DELNR AND ZCZABW~KUNWE IN S_KUNWE AND ZCZABW~DATUM IN S_DATUM AND ZCZABW~STAT01 = 'X' " Wareneingangsstatus ORDER BY ZCZABW~KUNWE EKKO~EKORG EKPO~WERKS ZCZABW~EBELN ZCZABW~EBELP.
|