yo,
ich bin da am probieren und probieren und es kommt einfach nix gescheites raus... :-(
das wird schon was werden, kopf hoch....
mein erster vorschlag wäre, dein datenbank-desgin zu überdenken. region und bundesstaat könnte man auch ausgliedern. von der stadt kann man die region ableiten und von der region das bundesland. die städte könnten eine eindeutige id bekommen, und somit können sich auch gleiche namen besitzen. aber das ist mehr oder weniger geschmackssache, ich würde es dir aber anraten.
nun zu deinen abfragen. du hast einen falschen ansatz. group by ist dein freund und mehrere abfragen. keep it simple (kis), ich würde nicht versuchen, alles in eine zu packen.
- die einwohnerzahl der stadt ( bzw. erfasste personen in der stadt)
- das durchschnittsgehalt der stadt
SELECT COUNT(*) AS Einwohnerzahl AVG(gehalt) AS Gehalt, stadt, region, bundesstaat
FROM tabelle
GROUP BY stadt, region, bundestaat
- das durchschnittsgehalt der region
SELECT AVG(gehalt) AS Gehalt, region
FROM tabelle
GROUP BY region
- das durchschnittsgehalt des bundeslandes
SELECT AVG(gehalt) AS Gehalt, bundesstaat
FROM tabelle
GROUP BY bundesstaat
- das durchschnittsgehalt landesweit
SELECT AVG(gehalt)
FROM tabelle
so, das sind erst einmal die abfragen. nun kan man sicherlich daran basteln, dass alles in eine query zu bekommen. aber muss man das, bzw. ist das eine vorgabe von dir ?
Ilja