mysql - 错误代码: 1111 Invalid use of group function

标签 mysql sql

您好,我有这个查询

SELECT perf_prog.date, MAX(perf_prog.end_time) , ADDTIME((shift_time.out), "01:00:00") FROM perf_prog 
INNER JOIN Shifts ON perf_prog.emp_id = Shifts.emp_id 
INNER JOIN shift_time ON Shifts.id = shift_time.id

WHERE perf_prog.emp_id = 920   GROUP BY perf_prog.date  

这是查询的输出

enter image description here

但我只想列出那些大于 shift_time.out 的 end_time 值

所以我这样做了

SELECT perf_prog.date, MAX(perf_prog.end_time) , ADDTIME((shift_time.out), "01:00:00") FROM perf_prog 
INNER JOIN Shifts ON perf_prog.emp_id = Shifts.emp_id 
INNER JOIN shift_time ON Shifts.id = shift_time.id

WHERE perf_prog.emp_id = 920 AND MAX(perf_prog.end_time) > ADDTIME((shift_time.out), "01:00:00")   GROUP BY perf_prog.date  

但我收到错误

Error Code: 1111
Invalid use of group function

在搜索 stackoverflow 时,解决问题的答案是将条件移至having子句

所以我得到了这个

SELECT perf_prog.date, MAX(perf_prog.end_time) , ADDTIME((shift_time.out), "01:00:00") FROM perf_prog 
INNER JOIN Shifts ON perf_prog.emp_id = Shifts.emp_id 
INNER JOIN shift_time ON Shifts.id = shift_time.id

WHERE perf_prog.emp_id = 920 GROUP BY perf_prog.date  
HAVING MAX(perf_prog.end_time)   > ADDTIME((shift_time.out), "01:00:00")

现在的问题是“having Clause”中的未知列“shift_time.out”

我是否遵循满足我需求的正确解决方案?谢谢。我一直在尝试找出解决方案,但无法使其发挥作用

最佳答案

您需要对列进行聚合。我想这可能就是你想要的:

SELECT pp.date, MAX(pp.end_time),
       MAX(ADDTIME((st.out), '01:00:00'))
FROM perf_prog pp INNER JOIN
     Shifts s
     ON pp.emp_id = s.emp_id INNER JOIN
     shift_time st
     ON s.id = st.id
WHERE pp.emp_id = 920
GROUP BY pp.date  
HAVING MAX(pp.end_time) > MAX(ADDTIME((st.out), '01:00:00))

关于mysql - 错误代码: 1111 Invalid use of group function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403200/

相关文章:

php - 如何仅显示 mysql 数据库中的小时和分钟(00 :00)?

mysql - SQL:删除具有重复字段的行

mysql - SQL更新两个表事务语法

php - 将mysql信息动态放置在带有id的div中

php - 网站开发: Architecture

mysql - Spark JDBC MySQL 语法错误,列名带有空格

sql - ORA 00936缺少表达

sql - 插入语句在函数内部不起作用(PostgreSQL)

php - 根据最近的一个或另一个字段排序

java - 如何在jsp中显示java中的ArrayList项目?