Hallo bs,
hier mal eine kleines Beispiel, das auch die Besonderheit des „Native“-SQL enthält, das PERFORMING, gibts in SQL nicht, da muss man Cursor öffnen und fetchen.
REPORT NO STANDARD PAGE HEADING LINE-SIZE 132 LINE-COUNT 65.
TABLES: KNVV, KNVP, KNA1.
DATA: W_KUNNR_VK LIKE KNVV-KUNNR,
W_NAME1_VK LIKE KNA1-NAME1,
W_VKORG LIKE KNVV-VKORG,
W_ZTERM_VK LIKE KNVV-ZTERM,
W_KUNNR_RG LIKE KNVP-KUNNR,
W_NAME1_RG LIKE KNA1-NAME1,
W_ZTERM_RG LIKE KNVV-ZTERM.
DATA: W_SEITE(3) TYPE P.
*----------------------------------------------------------------------*
* Start der Verarbeitung *
*----------------------------------------------------------------------*
START-OF-SELECTION.
EXEC SQL PERFORMING VERARB_1_SATZ.
SELECT B.KUNNR, a.name1, b.vkorg, b.zterm, d.kunnr, e.name1, d.zterm
INTO :W_KUNNR_VK, :w_name1_vk, :w_vkorg, :w_zterm_vk,
:w_kunnr_rg, :w_name1_rg, :w_zterm_rg
FROM KNA1 A, KNVV B, KNVP C, KNVV D, KNA1 E
WHERE A.MANDT = :SY-MANDT
AND B.MANDT = :SY-MANDT
AND C.MANDT = :SY-MANDT
AND D.MANDT = :SY-MANDT
AND E.MANDT = :SY-MANDT
and a.mandt = b.mandt
and b.mandt = c.mandt
and c.mandt = d.mandt
and d.mandt = e.mandt
and a.kunnr = b.kunnr
and b.vtweg = ‚00‘
and b.spart = ‚00‘
and b.kunnr = c.kunnr
and b.vkorg = c.vkorg
and c.parvw = ‚RG‘
and c.vtweg = ‚00‘
and c.spart = ‚00‘
and c.parza = ‚000‘
and d.kunnr = c.kunn2
and d.vkorg = c.vkorg
and d.vtweg = ‚00‘
and d.spart = ‚00‘
and e.kunnr = d.kunnr
AND B.ZTERM D.ZTERM
order by 1
ENDEXEC.
*---------------------------------------------------------------------*
* Ausgabe eines selektierten Satzes *
*---------------------------------------------------------------------*
FORM VERARB_1_SATZ.
WRITE: / W_KUNNR_VK,
W_NAME1_VK,
W_VKORG,
’ ',
W_ZTERM_VK,
’ ',
W_KUNNR_RG,
W_NAME1_RG,
W_ZTERM_RG.
ENDFORM.
*----------------------------------------------------------------------*
* Seitenkopf *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
W_SEITE = W_SEITE + 1.
ULINE.
* Hier müssen noch Leerzeichen rein
WRITE: / ‚Abgleich Zahlungsbedingungen Auftraggeber / Regulierer‘,
’ Seite’,
W_SEITE.
ULINE.
WRITE: /1 ‚Auftagg.‘,
12 ‚Name‘,
48 ‚VK-Org‘,
55 ‚Z.Bed.‘,
62 ‚Regul.‘,
73 ‚Name‘,
109 ‚Z.Bed.‘.
ULINE.
Davon abgesehen gilt die Syntax der jeweiligen SQL-Datenbank, für einfache Selects sicher nicht das Problem.
Das wichtigste Statement in diesem Zusammenhang ist CONNECT, also der Verbindungsaufbau zur bewünschten Datenbank. Dieses fehlt im obigen Coding, dort wird mit Native SQL auf die SAP-Datenbank zugegriffen. Du musst dich in diesem Punkt also selbst schlau machen.
Hoffe etwas geholfen zu haben, Zoelomat.