<zitat>
Was ist ein Gruppenwechsel?
Welcher Algorithmus steckt dahinter?
Hat vielleicht jemand Beispielcode dazu?
</zitat>
Der Begriff Gruppenwechseln stammt aus den Urzeiten sequentieller Dateiverarbeitung. Nehmen wir an, es gebe eine Tabelle mit einer Reihe für jeden Einwohner einer Stadt und den u.a. den Spalten Nachname, Vorname, Bezirk und Gehalt.
Das Durchschnittsgehalt je Bezirk könnte man ermiiteln per "Select Bezirk, Avg(Gehalt) as Durchschnittseinkommen from Einwohner group by Bezirk;" Will man in einer Liste aber zusätzlich jedes einzelne Gehalt ausgeben, kann man ein Listenprogramm mit Gruppenwechsel programmieren. Voraussetzung hierbei ist, das die Daten nach dem zu grupierenden Ordnungsbegriff (hier Bezirk) sortiert sind.
<Pseudocode>
Datensatzgruppe "Select Nachname, Vorname, Bezirk, Gehalt from Einwohner order by Bezirk" öffnen;
erste Reihe lesen;
Ausgabe der Listenüberschrift;
Gesamtanzahl = 0;
Gesamtgehalt = 0;
Solange nicht EOF
Alt_Bezirk = Bezirk;
Bezrkanzahl = 0;
Bezirkgehalt = 0;
Ausgabe der Überschrift je Bezirk;
Solange Alt_Bezirk = Bezirk und nicht EOF
Ausgabe Bezirk, Nachname, Vorname, Gehalt;
Bezirkanzahl = Bezirkanzahl + 1;
Bezirkgehalt = Bezirkgehalt + Gehalt;
nächste Reihe lesen;
Ende-Solange
Ausgabe Bezirkgehalt, Bezirkanzahl, (Bezirkgehalt / Bezirkanzahl);
Gesamtanzahl = Gesamtanzahl + Bezirkanzahl;
Gesamtgehalt = Gesamtgehalt + Bezirkgehalt;
Ende-Solange
Ausgabe Gesamtgehalt, Gesamtanzahl, (Gesamtgehalt / Gesamtanzahl);
</Pseudocode>
hth
Reinhold