Eine Methode der Datenaufbereitung besteht darin, die entsprechenden Zusätze der SELECT-Anweisung zu verwenden. Bei dieser Methode der Aufbereitung müssen sämtliche Datenbankzugriffe selbst programmiert werden. Außerdem müßte noch ein Selektionsbild programmiert werden, das es dem Benutzer erlaubt, die Menge der gelesenen Daten einzuschränken. Schließlich ist die gezeigte Methode der geschachtelten SELECT-Schleifen äußerst unperformant. Es empfiehlt sich, die Daten blockweise in interne Tabellen oder Extrakte zu stellen und nachträglich zu bearbeiten.
REPORT demo_data_process_read.
DATA: sum TYPE i, cnt TYPE i,
wa_spfli TYPE spfli,
wa_sflight TYPE sflight,
wa_sbook TYPE sbook.
SELECT * FROM spfli INTO wa_spfli
ORDER
BY cityfrom cityto connid.
SKIP.
WRITE: / wa_spfli-carrid,
wa_spfli-connid,
'from', (15)
wa_spfli-cityfrom,
'to',
(15) wa_spfli-cityto.
ULINE.
SELECT * FROM sflight INTO wa_sflight
WHERE
carrid = wa_spfli-carrid
AND
connid = wa_spfli-connid
ORDER
BY fldate.
SKIP.
WRITE: / 'Date:', wa_sflight-fldate.
WRITE: 20 'Book-ID', 40 'Smoker', 50 'Class'.
ULINE.
sum = 0.
cnt = 0.
SELECT * FROM sbook INTO wa_sbook
WHERE
carrid = wa_sflight-carrid
AND
connid = wa_sflight-connid
AND
fldate = wa_sflight-fldate
ORDER
BY class smoker bookid.
WRITE: / wa_sbook-bookid UNDER
'Book-ID',
wa_sbook-smoker UNDER 'Smoker',
wa_sbook-class UNDER 'Class'.
sum = sum + wa_sbook-luggweight.
cnt = cnt + 1.
ENDSELECT.
ULINE.
WRITE: 'Number of bookings: ', (3) cnt,
/ 'Total luggage weight:',
(3) sum, wa_sbook-wunit.
ENDSELECT.
ENDSELECT.
Dieses Programm erzeugt die Liste in Beispiel für aufbereitete Daten. Es verwendet den Zusatz ORDER BY der SELECT-Anweisung für die Sortierung der Daten.