Причина ошибки в том, что вы не можете использовать агрегатные (IE: MIN, MAX, COUNT ...) функции в предложении WHERE
- только в предложении HAVING
вы можете сделать это. И чтобы определить предложение HAVING
, в вашем запросе должно быть определено предложение GROUP BY
:
SELECT COUNT(f.festivalid)
FROM FESTIVALS f
GROUP BY ? --festivalid would NOT be an ideal choice
HAVING MIN(datefrom) > now()
... но у меня есть сомнения по поводу запроса, и я думаю, что было бы лучше использовать:
SELECT COUNT(f.festivalid)
FROM FESTIVALS f
WHERE f.datefrom > CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
является стандартом ANSI, эквивалентным специфичной для MySQL NOW()
, что делает запрос переносимым на другие базы данных.