Hallo Leute!
Ich hoffe, irgendjemand kann mir bei meinem Problem helfen. Ich versuche gerade, eine Auswertung via PHP & MySQL etwas aufzupeppen, bin da aber an ein Problem gekommen, welches ich anscheinend nicht selbst lösen kann.
Folgendes: ich habe eine Tabelle 'table' - die sieht z.B. so aus:
Nummer | Service | Name
-----------------------
0010 | X | Anton
0015 | Y | Emil
0156 | X |
1520 | Y | Carl
0010 | X | Berta
1520 | Y |
1156 | Y |
0015 | Y |
0012 | X |
0010 | X | Anton
1520 | Y | Carl
1580 | X | Max
0112 | X |
0010 | X |
0156 | X | Anton
0010 | X | Berta
0015 | Y | Emil
1157 | X |
1156 | Y |
0010 | X | Anton
Auf diese Tabelle mache ich normalerweise folgende Abfrage:
SELECT COUNT(Nummer) AS Nr, Nummer, Service FROM table GROUP BY Nummer ORDER BY Nr DESC;
Das ergibt dann folgendes:
Nr | Nummer | Service
---------------------
6 | 0010 | X
3 | 0015 | Y
3 | 1520 | Y
2 | 0156 | X
2 | 1156 | Y
1 | 0012 | X
1 | 1580 | X
1 | 0112 | X
1 | 1157 | X
Jetzt will ich diese Abfrage so erweitern, dass mir z.B. in den Zeilen auch noch angezeigt wird, wie oft Anton innerhalb der Gruppierung vorkommt.
Diese Abfrage ist das Ergebniss zahlreicher Versuche:
SELECT COUNT(Nummer) AS Nr, Nummer, Service, (SELECT COUNT(Name) AS Name FROM table WHERE Name LIKE 'Anton') FROM table GROUP BY Nummer ORDER BY Nr DESC;
Das ergibt folgendes:
Nr | Nummer | Service | SELECT COUNT(Name) AS Name FROM table WHERE Name LIKE 'Anton'
-------------------------------------------------------------------------------------
6 | 0010 | X | 3
3 | 0015 | Y | 3
3 | 1520 | Y | 3
2 | 0156 | X | 3
2 | 1156 | Y | 3
1 | 0012 | X | 3
1 | 1580 | X | 3
1 | 0112 | X | 3
1 | 1157 | X | 3
Ich möchte aber ein Ergebnis,welches so aussieht:
Nr | Nummer | Service | Name
----------------------------
6 | 0010 | X | 3
3 | 0015 | Y |
3 | 1520 | Y |
2 | 0156 | X | 1
2 | 1156 | Y |
1 | 0012 | X |
1 | 1580 | X |
1 | 0112 | X |
1 | 1157 | X |
Wer kann mir sagen, wo mein Fehler liegt bzw. wer kann mir mein Problem lösen?
Vielen Dank im Voraus
HarryW
Ich hoffe, irgendjemand kann mir bei meinem Problem helfen. Ich versuche gerade, eine Auswertung via PHP & MySQL etwas aufzupeppen, bin da aber an ein Problem gekommen, welches ich anscheinend nicht selbst lösen kann.
Folgendes: ich habe eine Tabelle 'table' - die sieht z.B. so aus:
Nummer | Service | Name
-----------------------
0010 | X | Anton
0015 | Y | Emil
0156 | X |
1520 | Y | Carl
0010 | X | Berta
1520 | Y |
1156 | Y |
0015 | Y |
0012 | X |
0010 | X | Anton
1520 | Y | Carl
1580 | X | Max
0112 | X |
0010 | X |
0156 | X | Anton
0010 | X | Berta
0015 | Y | Emil
1157 | X |
1156 | Y |
0010 | X | Anton
Auf diese Tabelle mache ich normalerweise folgende Abfrage:
SELECT COUNT(Nummer) AS Nr, Nummer, Service FROM table GROUP BY Nummer ORDER BY Nr DESC;
Das ergibt dann folgendes:
Nr | Nummer | Service
---------------------
6 | 0010 | X
3 | 0015 | Y
3 | 1520 | Y
2 | 0156 | X
2 | 1156 | Y
1 | 0012 | X
1 | 1580 | X
1 | 0112 | X
1 | 1157 | X
Jetzt will ich diese Abfrage so erweitern, dass mir z.B. in den Zeilen auch noch angezeigt wird, wie oft Anton innerhalb der Gruppierung vorkommt.
Diese Abfrage ist das Ergebniss zahlreicher Versuche:
SELECT COUNT(Nummer) AS Nr, Nummer, Service, (SELECT COUNT(Name) AS Name FROM table WHERE Name LIKE 'Anton') FROM table GROUP BY Nummer ORDER BY Nr DESC;
Das ergibt folgendes:
Nr | Nummer | Service | SELECT COUNT(Name) AS Name FROM table WHERE Name LIKE 'Anton'
-------------------------------------------------------------------------------------
6 | 0010 | X | 3
3 | 0015 | Y | 3
3 | 1520 | Y | 3
2 | 0156 | X | 3
2 | 1156 | Y | 3
1 | 0012 | X | 3
1 | 1580 | X | 3
1 | 0112 | X | 3
1 | 1157 | X | 3
Ich möchte aber ein Ergebnis,welches so aussieht:
Nr | Nummer | Service | Name
----------------------------
6 | 0010 | X | 3
3 | 0015 | Y |
3 | 1520 | Y |
2 | 0156 | X | 1
2 | 1156 | Y |
1 | 0012 | X |
1 | 1580 | X |
1 | 0112 | X |
1 | 1157 | X |
Wer kann mir sagen, wo mein Fehler liegt bzw. wer kann mir mein Problem lösen?
Vielen Dank im Voraus
HarryW