Gremlin
11.07.2009, 19:28
Wo ist der Fehler:
SELECT mitglieder.werber, COUNT(mitglieder.id) AS menge, COUNT(teilnahmen.id) AS teilnahmen FROM
mitglieder
LEFT JOIN teilnahmen ON teilnahmen.uid=mitglieder.id AND teilnahmen.zeit >= '.$start.' AND teilnahmen.zeit <= '.$ende.'
WHERE mitglieder.status="aktiv" AND mitglieder.werber > 0 AND mitglieder.registrierung >= '.$start.' AND mitglieder.registrierung <= '.$ende.'
GROUP BY teilnahmen.uid, mitglieder.werber
HAVING teilnahmen >= '.$min.'
ORDER BY menge DESC LIMIT 10
Ich möchte zu jedem Werber die Anzahl der Refs die zwischen $start und $ende geworben wurden. Es zählen jedoch nur Refs die zwischen $start und $ende an min. 2 Aktionen teilgenommen haben.
Der o.g. Query liefert mir:
werber = 1
menge = 2
Dabei hat werber 1 nur 1 Ref geworben :der:.
SELECT mitglieder.werber, COUNT(mitglieder.id) AS menge, COUNT(teilnahmen.id) AS teilnahmen FROM
mitglieder
LEFT JOIN teilnahmen ON teilnahmen.uid=mitglieder.id AND teilnahmen.zeit >= '.$start.' AND teilnahmen.zeit <= '.$ende.'
WHERE mitglieder.status="aktiv" AND mitglieder.werber > 0 AND mitglieder.registrierung >= '.$start.' AND mitglieder.registrierung <= '.$ende.'
GROUP BY teilnahmen.uid, mitglieder.werber
HAVING teilnahmen >= '.$min.'
ORDER BY menge DESC LIMIT 10
Ich möchte zu jedem Werber die Anzahl der Refs die zwischen $start und $ende geworben wurden. Es zählen jedoch nur Refs die zwischen $start und $ende an min. 2 Aktionen teilgenommen haben.
Der o.g. Query liefert mir:
werber = 1
menge = 2
Dabei hat werber 1 nur 1 Ref geworben :der:.