我有一个SQL语句:
SELECT AVG(`totalhours`)/5 AS `average`,* FROM `report_signout` JOIN `employee` ON `employee`.`username`=`report_signout`.`username`
然而它不起作用。基本上我需要计算员工在任何一周内在场所的平均总小时数,假设办公室每周只开放5天。总时数来自我需要加入report_signout
username
表employee
的表ctypes
,因此我可以生成一个结果,然后我可以列出其中的名字和姓氏员工以及网页上的平均小时数。最后一部分是用PHP完成的,我已经知道该怎么做了。我只需要看看我在SQL语句中出错了。
如果有人可以向我指出或给我一些帮助,我将不胜感激,谢谢!
答案 0 :(得分:2)
MySQL并不真正知道totalhours
是什么。当您引用多个表时,表未被假定为,因此您需要通过将引用定义为以下来声明平均值:
`table name`.`column name`
对于大多数(如果不是全部)MySQL内置函数都是如此。尽可能使用绝对声明(即具有表和列名称的声明,如上所述)。
SELECT AVG(`report_signout`.`totalhours`)/5 AS `average`,
`report_signout`.*, `employee`.*
FROM `report_signout`
INNER JOIN `employee` ON `employee`.`username` = `report_signout`.`username`
作为一小部分,请尝试避免模糊的JOIN
引用,而不是使用完整的JOIN引用,该引用指出JOIN的类型而不是假设。
还尝试避免使用*
选择,而不是说明您要拨打的每个列。