bayanruby
@bayanruby
PHP Developer

Как группировать, HAVING'ом проверить и если всё ОК, вывести разгруппированный результат?

SELECT id
FROM timeRecords
WHERE DATE_FORMAT(dateRecord, '%Y-%m-%d') >= '$date'
GROUP BY dateRecord, companyId, employeeId
HAVING sum(timer) < 86400

Из-за того, что я группирую мне приходит в ответе одна id, а их может быть много, но убрать группировку тоже нельзя, так как по ней идёт проверка.

Как можно решить эту проблему?
  • Вопрос задан
  • 2687 просмотров
Решения вопроса 1
MaxiMonster
@MaxiMonster
У вас неккоректная группировка по полю "dateRecord". Вам скорее всего нужно преобразовать ето поле, чтоб получать "дату" - "ГГГГ-ММ-ДД", а у вас группировка происходит, вплоть до секунды или миллисекунды, Какой тип данных у поля "dateRecord"?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@retvizan
Выбирайте (dateRecord, companyId, employeeId), а потом по этой комбинации выбирайте нужные вам данные.
О том как правильно писать запросы с группировкой посмотрите эту статью
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы