Я подозреваю, что условное COUNT()
должно быть SUM()
:
sum(case when Submitted between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() then 1 else 0 end) as UserJobs
Обоснование: COUNT()
учитывает все ненулевые значения; поэтому независимо от того, является ли условное выражение внутри возвращаемого значения 0
или 1
, оно все равно учитывается, что, скорее всего, не то, что вам нужно.
Обратите внимание, что, поскольку вы используете MySQL Кроме того, вы могли бы упростить:
SUM(Submitted between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW()) as UserJobs
Другие проблемы или возможные улучшения в вашем запросе:
StaffID
неоднозначно в предложении where
, поскольку это Столбец существует в обеих объединяемых таблицах
limit 1
является излишним в этом агрегированном запросе, в котором нет предложения group by
(гарантированно будет возвращаться либо 0, либо 1 строка)
вложенные скобки вокруг условий не нужны
должна быть возможность использовать условное агрегирование полностью, а не подзапрос для вычисления AllJobs
, перемещая фильтрация по StaffID
из условия where
в условия внутри агрегатных функций - но это трудно оценить, не видя фактических структур таблиц и данных