исключение java.sql.SQLException: Недопустимое использование функции группы

#java #mysql #sql #database

Вопрос:

Из этого запроса:

 select count(*) as data, LOCATION_Name as location  from SPECIAL_PROCEDURE_COLLECTION_FINAL_temp_final  where snogt;=6973   and snolt;= 7251   and date(PAYMENT_DATE) = '2021-07-31'   and Procedures_Category IN ('FFA-VR')   and SUM(BILLED_AMOUNT)= 0  group by LOCATION_Name  

Я получаю эту ошибку:

исключение java.sql.SQLException: Недопустимое использование функции группы

В чем проблема?

Ответ №1:

Вы не можете использовать агрегатную функцию в предложении where. Пожалуйста, измените свой запрос на:

 select count(*) as data, LOCATION_Name as location  from SPECIAL_PROCEDURE_COLLECTION_FINAL_temp_final  where snogt;=6973 and snolt;= 7251 and  date(PAYMENT_DATE) = '2021-07-31' and Procedures_Category IN ('FFA-VR')   group by LOCATION_Name Having SUM(BILLED_AMOUNT)= 0  

Ответ №2:

Ограничение на сумму выставленной суммы относится к HAVING пункту, а не к WHERE пункту:

 SELECT COUNT(*) AS data, LOCATION_Name AS location  FROM SPECIAL_PROCEDURE_COLLECTION_FINAL_temp_final  WHERE sno BETWEEN 6973 AND 7251 AND  PAYMENT_DATE gt;= '2021-07-31' AND PAYMENT_DATE lt; '2021-08-01' AND  Procedures_Category = 'FFA-VR' GROUP BY LOCATION_Name HAVING SUM(BILLED_AMOUNT) = 0;