mrusklon
@mrusklon
Не получается? Яростно гугли!

Почему sql запрос возвращает «нечего»?

есть таблица в которой отмечают даты командировок, все хорошо, но вот именно за февраль, возвращает пустоту
Если в дату добавить диапазон который и январь затрагивает, то выборка идет как положено включая все даты февраля

код запроса
SELECT user_dolg.user_id, users.users_id, users.name,user_dolg.date, user_dolg.dogovor_name, COUNT(*) AS cnt
FROM users
INNER JOIN user_dolg ON user_dolg.user_id = users.users_id
WHERE `date` BETWEEN '2019-02-01' AND '2019-02-28' AND komandi='командировка'
GROUP BY users.name;


кто подскажет куда копать?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вы делаете группировку по users.name
Для правильной работы запроса необходимо, чтобы все остальные поля были в агрегатных функциях.
Фактически, запрос сейчас выглядит так:
SELECT ANY_VALUE(user_dolg.user_id), ANY_VALUE(users.users_id), users.name,
       ANY_VALUE(user_dolg.date), ANY_VALUE(user_dolg.dogovor_name), COUNT(*) AS cnt
FROM users
INNER JOIN user_dolg ON user_dolg.user_id = users.users_id
WHERE `date` BETWEEN '2019-02-01' AND '2019-02-28' AND komandi='командировка'
GROUP BY users.name;

Так что непонятно, откуда вы взяли, что "выборка идет как положено включая все даты февраля"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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