Count bei groupierung
Hallo,
in einer Tabelle habe ich ein Feld welches die Werte a, e oder u enthält. zum Anzeigen Groupiere ich diese anhand des ersten wertes. Allerdings möchte ich in der gleichen Zeile einmal die Anzahl aller a's aller e's und aller u's haben, damit ich diese in einer Zeile ausgeben kann.
Meine Syntax lautet:
$sql = "SELECT id_anwesenheitsliste, DATE_FORMAT(datum, '%d.%m.%Y') AS datumneu, thema,
count(status) AS status_a, count(status) AS status_e, count(status) AS status_u
FROM anwesenheitslisten_anwesende
INNER JOIN anwesenheitslisten ON anwesenheitslisten_anwesende.id_anwesenheitsliste=anwesenheitslisten.i d
WHERE DATE_FORMAT(datum, '%Y')='".$jahr."' AND (status_a='a' OR status_e='e' OR status_u='u')
GROUP BY id_anwesenheitsliste
ORDER BY datum DESC";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_row($result))
{
$anwesenheitslisten .= '<tr>';
$anwesenheitslisten .= '<td>'.$row[1].'</td>';
$anwesenheitslisten .= '<td>'.$row[2].'</td>';
$anwesenheitslisten .= '<td align=center>'.$row[3].'</td>';
$anwesenheitslisten .= '<td align=center>'.$row[4].'</td>';
$anwesenheitslisten .= '</tr>';
Die Tabelle anwesenheitslisten_anwesende sie wie folgt aus:
id | id_anwesenheitsliste | id_anwesender | status
1 | 15 | 20000 | a
2 | 15 | 20001 | e
3 | 15 | 20003 | a
4 | 15 | 20004 | u
5 | 15 | 20004 | a
....
Die Tabelle sollte dann so aussehen:
id_anwesen | Datum | Thema | Anzahl a | Anzahl e | Anzahl u
15 | xx | xx | 3 | 1 | 1
16 ...
Ich hoffe ihr könnt mir helfen.
Grüsse
Roland
Geändert von wollenschlaeger (08.04.2004 um 10:46:54 Uhr)
|