joschilein
Multitalent
- 5 Mai 2006
- 1.393
- 151
Um die Frage nicht unnötig kompliziert zu machen, habe ich mir kurz ein äquvalentes primitives Beispiel ausgedacht:
Es ist folgende Tabelle vorhanden:
Mir dieser Abfrage
bekomme ich folgendes Ergebnis
Das ist genau was ich haben will. Doch erstens gefällt mir diese Abfrage nicht so ganz und außerdem möchte ich mir über die Abfrage keine Gedanken mehr machen und auch ein vollständiges Ergebnis bekommen, wenn z.B. in der zweiten Zeile eine 6 als Lochtiefe stehen würde. Die Abfrage sollte also die verschiedenen Werte der Lochtiefe suchen (deren Anzahl halte ich programmmäßig in engen Grenzen, die genaue Anzahl ist aber unbekannt) und entsprechend und danach die Ergebnisspalten mit den entsprechenden Subquerrys füllen.
Es ist folgende Tabelle vorhanden:
Code:
Tabelle grundtest:
grund_id lochtiefe
1 4
1 3
1 3
1 2
2 2
2 3
3 5
3 4
3 4
Code:
SELECT
`grund_id` as id
, COUNT(*) as anzahl_löcher
, (SELECT
COUNT(*)
FROM `grundtest`
WHERE `lochtiefe`=2
AND `grund_id`=id
) as 2er
, (SELECT
COUNT(*)
FROM `grundtest`
WHERE `lochtiefe`=3
AND `grund_id`=id
) as 3er
, (SELECT
COUNT(*)
FROM `grundtest`
WHERE `lochtiefe`=4
AND `grund_id`=id
) as 4er
, (SELECT
COUNT(*)
FROM `grundtest`
WHERE `lochtiefe`=5
AND `grund_id`=id
) as 5er
FROM `grundtest`
GROUP BY `grund_id`
Code:
id anzahl_löcher 2er 3er 4er 5er
1 4 1 2 1 0
2 2 1 1 0 0
3 3 0 0 2 1
Zuletzt bearbeitet: