Ich habe folgende Aufgabenstellung:
Als erstes soll eine sortierte Tabelle erzeugt werden:
SELECT p_NAME, p_VORNAME, p_GEBDAT
FROM PATIENT
ORDER BY p_NAME, p_VORNAME, p_GEBDAT
Die Datenbank besitzt ca. 500 Datensätze.
Die Aufgabenstellung sieht es vor, jeweils 100 Datensätze pro Select-Ausführung auszugeben.
D.H. ich brauche nach meinem Wissen erst einmal einen ZeilenZähler (rownum, wird umbenannt in "ZZ") und eine Unterabfrage für die Einschränkung auf jeweils 100 Datensätze (Zwischenspeicher der rownum).
Die Abfrage sieht dann so aus:
SELECT ZZ, NAME, VORNAME, GEBDAT
FROM (SELECT rownum AS ZZ, NAME, VORNAME, GEBDAT
FROM PATIENT
ORDER BY NAME, VORNAME, GEBDAT
)
WHERE ZZ BETWEEN 1 AND 100
Die WHERE-Bedingung wird bei jedem Durchlauf angepasst (101 -200, 201-300, etc.).
Nun bekomme ich die ersten 100 Datensätze sortiert nach Name, Vorname, Geburtsdatum.
ZZ | Name | Vorname | Gebdat | PID
4 |A | Aaster |1.1.1983 | 0004
39 |Arg | Anxx |1.1.1942 | 0306
23 |B | Bast |2.4.1956 | 0143
88 |C | Conner |24.4.1942| 0045
Rownum „ZZ“ soll laut Aufgabenstellung für Datensatz 1 Nummer 1 haben – Datensatz 2 Nummer 2 etc...
Nach meinem jetzigen Stand wir die rownum vor der sortierung erzeugt, und wird durch die nachfolgende sortierung "durcheinandergewirbelt". Ich müsste demnach erst die sortierte Liste (Name, Vornme, Gebdat) erstellen und anschließend die rownum durchlaufen lassen.
Ich bekomme das momentan überhaupt nicht hin. Brauche ich da noch eine Unterfrage?
Vielleicht könnt ihr mir weiter helfen!! Besten Dank euch )