#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;