redlama
Erfahrenes Mitglied
Hallo!
Ich habe ein Problem, für das ich eine Lösung suche und bräuchte dabei ein wenig Hilfe!
Ich habe folgenden Query:
Dabei ergibt sich jetzt ein Problem, das ich anhand eines Beispiels zeigen will:
count liefert mir die Anzahl der Logins eines Kunden zurück. In meinem Beispiel bekomme ich den Wert 595 zurück.
count_rem0, count_rem1 und count_rem2 liefern mir die Anzahl der Buchungen eines Kunden anhand bestimmter Kriterien (bo.xx).
In meinem Beispiel bekomme ich die Werte 210, 5 und 380.
Also habe ich
count = 595
count_rem0 = 210
count_rem1 = 5
count_rem2 = 380
Jetzt zu meinem Problem. Ich weiß, dass der Wert count eigentlich nur 5 ist (separate Abfrage per phpMyAdmin). Und die anderen Werte sind eigentlich 42, 1 und 76.
42 + 1 + 76 = 119
119 * 5 = 595
210 + 5 + 380 = 595
Das Problem besteht also darin, dass bei den LEFT JOINs die jeweiligen Werte miteinander multipliziert werden.
Kann ich den Query irgendwie abwandeln, sodass ich die korrekten Werte bekomme?
Ich hatte schon überlegt den Query in 3 Abfragen zu splitten, aber da hängt eine Umprogrammierung des kompletten Scriptes dran und wäre nur der allerletzte Ausweg.
Weiß jemand einen Rat?
Ich habe ein Problem, für das ich eine Lösung suche und bräuchte dabei ein wenig Hilfe!
Ich habe folgenden Query:
Code:
SELECT cl.*, count(lin.id) as count,
COUNT(CASE WHEN bo.xx = '0' THEN bo.id ELSE NULL END) AS count_rem0,
COUNT(CASE WHEN bo.xx = '1' THEN bo.id ELSE NULL END) AS count_rem1,
COUNT(CASE WHEN bo.xx = '2' THEN bo.id ELSE NULL END) AS count_rem2
FROM wx AS cl
LEFT JOIN xy AS bo ON (cl.id = bo.zz)
LEFT JOIN yz AS lin ON (cl.id = lin.zz)
WHERE ((cl.ww='1'))
GROUP BY cl.id
ORDER BY cl.id ASC
LIMIT 0,100
count liefert mir die Anzahl der Logins eines Kunden zurück. In meinem Beispiel bekomme ich den Wert 595 zurück.
count_rem0, count_rem1 und count_rem2 liefern mir die Anzahl der Buchungen eines Kunden anhand bestimmter Kriterien (bo.xx).
In meinem Beispiel bekomme ich die Werte 210, 5 und 380.
Also habe ich
count = 595
count_rem0 = 210
count_rem1 = 5
count_rem2 = 380
Jetzt zu meinem Problem. Ich weiß, dass der Wert count eigentlich nur 5 ist (separate Abfrage per phpMyAdmin). Und die anderen Werte sind eigentlich 42, 1 und 76.
42 + 1 + 76 = 119
119 * 5 = 595
210 + 5 + 380 = 595
Das Problem besteht also darin, dass bei den LEFT JOINs die jeweiligen Werte miteinander multipliziert werden.
Kann ich den Query irgendwie abwandeln, sodass ich die korrekten Werte bekomme?
Ich hatte schon überlegt den Query in 3 Abfragen zu splitten, aber da hängt eine Umprogrammierung des kompletten Scriptes dran und wäre nur der allerletzte Ausweg.
Weiß jemand einen Rat?