【问题标题】:java.sql.SQLException: Invalid use of group functionjava.sql.SQLException:组函数的使用无效
【发布时间】:2021-12-28 03:18:41
【问题描述】:
从这个查询:
select count(*) as data, LOCATION_Name as location
from SPECIAL_PROCEDURE_COLLECTION_FINAL_temp_final
where sno>=6973
and sno<= 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:组函数的使用无效
有什么问题?
【问题讨论】:
标签:
java
mysql
sql
database
【解决方案1】:
对账单金额总和的限制属于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 >= '2021-07-31' AND PAYMENT_DATE < '2021-08-01' AND
Procedures_Category = 'FFA-VR'
GROUP BY LOCATION_Name
HAVING SUM(BILLED_AMOUNT) = 0;
【解决方案2】:
您不能在 where 子句中使用聚合函数。请将您的查询更改为:
select count(*) as data, LOCATION_Name as location
from SPECIAL_PROCEDURE_COLLECTION_FINAL_temp_final
where sno>=6973 and sno<= 7251 and
date(PAYMENT_DATE) = '2021-07-31' and Procedures_Category IN ('FFA-VR')
group by LOCATION_Name
Having SUM(BILLED_AMOUNT)= 0