Найти записи из одной таблицы, которые не существуют в другой, ИЛИ имеют общую сумму 0 для определенного значения - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь выбрать всех клиентов, у которых есть запись в другой таблице

ИЛИ

сумма значения поля "таймер" равна 0 в другой таблице.

Это мой подход:

SELECT 
  *
FROM 
  rS_customer AS c
LEFT JOIN 
  rS_customer_log AS l
    ON c.id = l.customerID
WHERE
  l.customerID IS NULL
OR 
  sum(l.timer) = 0
GROUP BY 
  l.customerID

Я получаю сообщение об ошибке: «Неправильное использование групповой функции»

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 23 мая 2018

Вы должны использовать HAVING, если у вас есть агрегаты в условиях.По этой причине вы получаете сообщение об ошибке «Неправильное использование групповой функции».

При неправильных числах причиной может быть условие соединения.Попробуйте изменить запрос следующим образом:

SELECT * FROM rS_customer WHERE id NOT IN (SELECT customerID FROM 

rS_customer_log GROUP BY customerID HAVING sum (timer) <> 0);

Это вызовет rS_customer s, которые не существуют в rS_customer_log или они существуют и имеют сумму timer, которая не равна 0.

Надеюсь, это поможет.

...