Hallo,
dafür ist die HAVING-Klausel zuständig.
Die HAVING- Klausel kenne ich, die greift aber erst, *nach* dem GROUP BY
Ich liste Orte auf (GROUP BY orte), zu jedem Ort gebe ich die Anzahl von Events an. Nun möchte ich wissen, ob *heute* ein Event dabei ist: Dann markiere ich den Ort besonders.
das war mir nicht klar :-(
Wie üblich gibt es verschiedene Möglichkeiten, Dein Problem zu lösen. Ersetze zunächst in Deiner Abfrage die Datumsspalte durch eine berechnete Spalte, die so aussieht wie Deine:
SELECT
spaltenliste,
-- ich nehme an, die Spalte "tag" ist vom Datentyp DATE :-)
IF(trm1.tag = [link:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_curdate@title=CURDATE()], 1, 0)
FROM
trm1
[...]
Nun hast Du bei Deinen Datensätzen genau dann eine 1 stehen, wenn heute ein Event ist, sonst eine 0. Daher kannst Du das von Dir gewünschte Ergebnis bekommen, wenn Du nun beim Gruppieren MAX() auf diese berechnete Spalte anwendest:
SELECT
spaltenliste,
MAX(IF(trm1.tag = CURDATE(), 1, 0)) heute
FROM
trm1
[...]
GROUP BY
ort,
[...]
Nun hast Du in "heute" genau dann eine 1 stehen, wenn am Ort heute ein Event stattfindet.
Freundliche Grüße
Vinzenz