Witam,
proszę o pomoc w optymalizacji zapytania MySQL'owego. Aktualnie trwa
zbyt długo... ~20 sek.
Potrzebuję do wygenerowania listy klientów zadłużonych, którzy:
1) zostali podłączeni przed 2005 rokiem,
2) mają włączone komputery,
3) bez zawieszonych płatności :)
LMS v1.4.x
SELECT users.id AS id, CONCAT(UPPER(lastname), ' ', users.name) AS
username, status, email, phone1, phone2, phone3, users.address, gguin,
nip, pesel, zip, city, info, message, serviceaddr,
COALESCE(SUM((type * -2 + 7) * value), 0.00)/(CASE COUNT(DISTINCT
nodes.id) WHEN 0 THEN 1 ELSE COUNT(DISTINCT nodes.id) END) AS balance
>FROM users
LEFT JOIN cash ON (users.id=cash.userid AND (type = 3 OR type = 4))
LEFT JOIN nodes ON (users.id=ownerid)
LEFT JOIN assignments ON (users.id=assignments.userid)
WHERE deleted = 0
AND users.creationdate < 1104534000 AND nodes.access = 1 AND NOT suspended
GROUP BY users.id, lastname, users.name, status, email, phone1, phone2,
phone3, users.address, gguin, nip, pesel, zip, city, info, message,
serviceaddr
ORDER BY balance asc
--
Pozdrawiam, Wiktor R. Braun