MySQL GROUP Problem
Kalle_B
- datenbank
Hallöle,
bei diesem SQL:
SELECT
gruppen_id
,aussteller_id
,count(*) wuensche
,max(slot_nr) max_slot
,count(IF((max(slot_nr)=0), NULL, 1)) gebucht
FROM tm_kontakte
WHERE owner_id=5 AND gruppen_id>0 AND ( prio_1=1 OR prio_2=1 )
GROUP BY gruppen_id, aussteller_id
kommt die Fehlermeldung
1111: Invalid use of group function
die sich auf Zeile 6 (,count(IF ...) bezieht. Wenn ich die Zeile auskommentiere, kommt der Fehler nicht.
Durch GROUP fasse ich 1..n Sätze einer Gruppe zusammen, die verschiedene slot_nr haben können. Ich möchte nur zählen, wenn mindestens eine slot_nr größer ist als 0 (Zahl Null).
Wie geht das?
Gruß, Kalle
Hallo!
Durch GROUP fasse ich 1..n Sätze einer Gruppe zusammen, die verschiedene slot_nr haben können. Ich möchte nur zählen, wenn mindestens eine slot_nr größer ist als 0 (Zahl Null).
Was meinst Du mit "zählen"? Du gruppierst ja nach gruppen_id und aussteller_id. Die Datensätze mit der gleichen gruppen_id und aussteller_id haben eine MAX(slot_nr). Willst Du nun ein zusätzliches berechnetes Feld haben, das 0 ist wenn MAX(slot_nr) = 0 und 1 sonst? Das geht ganz einfach:
SELECT ...
IF(MAX(slot_nr) = 0, 0, 1) gebucht
...
Oder was genau willst Du erreichen?
Viele Grüße,
Christian
Hallo Kalle,
Durch GROUP fasse ich 1..n Sätze einer Gruppe zusammen, die verschiedene slot_nr haben können. Ich möchte nur zählen, wenn mindestens eine slot_nr größer ist als 0 (Zahl Null).
Wie geht das?
mit einem Subselect.
Freundliche Grüße
Vinzenz