Hallo zusammen,
ich bin gerade am Verzweifeln, weil ich meinen JOIN einfach nicht hinbekomme und auch gerade gar nicht mehr weiß wo oben und unten ist.
Und zwar habe ich eine Tabelle, auf die ich zwei Mal zugreifen möchte:
--------------------------------------------------------
| ID | PLZ | STADT | ANZ_BRIEFKAESTEN |
--------------------------------------------------------
| 1 | 123 | 1 | 5000 |
--------------------------------------------------------
| 2 | 124 | 1 | 300 |
--------------------------------------------------------
| 3 | 125 | 1 | 800 |
--------------------------------------------------------
| 4 | 456 | 2 | 450 |
--------------------------------------------------------
| 5 | 457 | 2 | 8000 |
--------------------------------------------------------
| 6 | 789 | 3 | 310 |
--------------------------------------------------------
Es gibt also eine ID, die ersten 3 Ziffern einer PLZ, dazu die Stadt (eine Stadt kann ja mehrere PLZs haben) und eine Anzahl Briefkästen.
Nun will ich folgendes machen:
Alle Briefkästen einer Stadt addieren addieren und dann jeweils schauen, welche Stadtteile/PLZ mehr als 10% der Briefkästen stellt und diese ausgeben lassen.
Bsp.:
STADT: 1
Briefkästen gesamt: 6.100
%ualer Anteil nach PLZ:
- 123: (5.000/6.100)*100 = 82%
- 124: (300/6.100)*100 = 5%
- 125: (800/6.100)*100 = 13%
PLZ 123 hätte mit 82% und PLZ 125 mit 13% mehr als 10% der Briefkästen in ihrem Stadtteil -> die beiden hätte ich dann gerne ausgegeben und das eben für alle Städte, die ich von außen (PHP-Skript) eingebe.
Hier mal mein Versuch, aber der geht gar nicht:
Hat jemand eine Idee, wie ich das hinbekommen könnte? Das ist nur eine Übung für mich, also keine Sorge wegen Datensammlung auf Kosten von Briefkastenbesitzern
Danke und Grüße,
Dirk
ich bin gerade am Verzweifeln, weil ich meinen JOIN einfach nicht hinbekomme und auch gerade gar nicht mehr weiß wo oben und unten ist.
Und zwar habe ich eine Tabelle, auf die ich zwei Mal zugreifen möchte:
--------------------------------------------------------
| ID | PLZ | STADT | ANZ_BRIEFKAESTEN |
--------------------------------------------------------
| 1 | 123 | 1 | 5000 |
--------------------------------------------------------
| 2 | 124 | 1 | 300 |
--------------------------------------------------------
| 3 | 125 | 1 | 800 |
--------------------------------------------------------
| 4 | 456 | 2 | 450 |
--------------------------------------------------------
| 5 | 457 | 2 | 8000 |
--------------------------------------------------------
| 6 | 789 | 3 | 310 |
--------------------------------------------------------
Es gibt also eine ID, die ersten 3 Ziffern einer PLZ, dazu die Stadt (eine Stadt kann ja mehrere PLZs haben) und eine Anzahl Briefkästen.
Nun will ich folgendes machen:
Alle Briefkästen einer Stadt addieren addieren und dann jeweils schauen, welche Stadtteile/PLZ mehr als 10% der Briefkästen stellt und diese ausgeben lassen.
Bsp.:
STADT: 1
Briefkästen gesamt: 6.100
%ualer Anteil nach PLZ:
- 123: (5.000/6.100)*100 = 82%
- 124: (300/6.100)*100 = 5%
- 125: (800/6.100)*100 = 13%
PLZ 123 hätte mit 82% und PLZ 125 mit 13% mehr als 10% der Briefkästen in ihrem Stadtteil -> die beiden hätte ich dann gerne ausgegeben und das eben für alle Städte, die ich von außen (PHP-Skript) eingebe.
Hier mal mein Versuch, aber der geht gar nicht:
Code:
SELECT
a.DST,
SUM(a.ANZ_BRIEFKAESTEN) as SUMALLEBRIEFK,
SUM(b.ANZ_BRIEFKAESTEN) as SUMBRIEFK
FROM
BRIEFKAESTEN a
INNER JOIN
BRIEFKAESTEN b
ON
a.STADT = b.STADT
WHERE
a.STADT= 1
AND
(SUMBRIEFK/SUMALLEBRIEFK)*100 > 15
GROUP BY
b.PLZ
Hat jemand eine Idee, wie ich das hinbekommen könnte? Das ist nur eine Übung für mich, also keine Sorge wegen Datensammlung auf Kosten von Briefkastenbesitzern
Danke und Grüße,
Dirk