Hallo,
ich habe eine rekursive Datenstruktur und muss dafür eine spezielle Abfrage bauen.
Es gibt verschiedene Mitarbeiter mit unterschiedlichen Stundsätzen
Mitarbeiter a) 10 EUR
Mitarbeiter b) 15 EUR
Mitarbeiter c) 20 EUR
Nun soll der Durchschnittstundensatz aller Mitarbeiter berechnet werden, wobei diese Mitarbeiter in einer Rekursiven Struktur abgebildet werden. Ebenfalls sollen Zwischenergebnisse je Struktur ermittelt werden können.
Mitarbeiter a) 10 Stunden mit je 10 EUR = 100 EUR
Mitarbeiter b) 5 Stunden mit je 15 EUR =75 EUR
Mitarbeiter c) 2 Stunden mit je 20 EUR =40 EUR
Rechenweise: Summe von (Stundensatz * Anzahl Stunden) geteilt durch Summe der Anzahl Stunden
Mitarbeiter a und Mitarbeiter gehören zu dem Vorgesetztem „Meier“
Vorgesetzter Meier=( (10 Std *10 EUR) + (5 Std * 15 EUR))/15 Std =11,6 EUR
Mitarbeiter c gehört zu Vorgesetztem „Müller“
Vorgesetzter Müller =( (2 Std *20 EUR) )/2 Std =20 EUR
Gesamt: 215 EUR geteilt durch 17 Stunden=12,64 EUR
Struktur:
Tabelle „Struktur“
ID------Bezeichnung-----IDRekursiv
1-------Gesamt----------0
2-------Meier-----------1
3-------Müller----------2
Tabelle „Mitarbeiter“
ID-Bezeichnung-Stundensatz-AnzahlStunden
1–a-----------10----------10
2–b-----------15----------5
3–c-----------20----------2
Tabelle „Verknüpfung“
ID-IDStruktur-IDMitarbeiter
1–2----------1
2–2----------2
3–3----------3
Meine Frage ist nun, ob ich einen SQL Befehl bauen kann, der mir für jeden Mitarbeiter anzeigt, sowie für jede Ebene der Struktur einen Durchschnittlichen Stundensatz ausgibt.
Folgende Tabelle soll meine Ausgabe sein.
Struktur-Mitarbeiter-Stundensatz-AnzahlStunden-Durchschnitt
Gesamt---------------215---------17------------12,64
Meier----------------175---------15------------11,6
Meier----a-----------10----------10------------10
Meier----b-----------15----------5-------------15
Müller---------------20----------2-------------20
Müller—c-----------20----------2-------------20
So in der Art:
SELECT Struktur.Bezeichnung, Mitarbeiter.Bezeichnung, Mitarbeiter.Stundensatz, Mitarbeiter.AnzahlStunden, ‚Durchschnitt‘
FROM Struktur,Mitarbeiter,Verknuepfung
Where Mitarbeiter.ID = Verknuepfung.IDMitarbeiter and Struktur.ID = Verknuepfung.IDStruktur;
UNION
SELECT Struktur.Bezeichnung, ‚‘, ‚SummeStundensatz‘, ‚SummeStunden‘, ‚Durchschnitt‘
FROM Struktur
Das ganze habe ich auch in einer kleinen Access Datenbank abgebildet. Gerne kann ich diese zur Verfügung stellen.
Bin für jede Info dankbar.
Gruß
Thomas